Форум программистов, компьютерный форум CyberForum.ru

Компиляция кода... не могу сообразить. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
11.06.2011, 01:54     Компиляция кода... не могу сообразить. #1
Доброго времени суток уважаемые форумчане!
Прошу помочь с решением проблемы:
есть исходники memtest86+, скачал чтоб разобраться как грамотно писать загрузку из-под БИОСа, так вот, скачал, просмотрел, вроде все понятно но компилятор MVS 2010 при компиляции как проект makefile говорит что не может создать и запустить *.ехе, я так посмотрел что в коде есть примеси ассемблера, а сам код на С, может в этом где-то вся загвоздка?
подскажите решение проблемы, 4-й день мудрю((((((
как правильно его собрать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
11.06.2011, 11:11     Компиляция кода... не могу сообразить. #2
Откройте Makefile в текстовом редаткторе и вы увидите, что он заточен под компилятор gcc. Плюс нужен насм. И что такое "загрузка из-под-биоса?!" memtest должен грузиться уже после загрузчика или самим загрузчиком.
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
11.06.2011, 12:03  [ТС]     Компиляция кода... не могу сообразить. #3
когда я писал "загрузка из-под БИОСа"я имел в виду вне ОС...
спасибо большое... ща попробуем)
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.06.2011, 12:06     Компиляция кода... не могу сообразить. #4
Вполне возможно, что в исходниках memtest используются ассемблерные вставки gcc, они там не как у microsoft. + диалект, скорее всего, AT&T, а не Intel...
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
11.06.2011, 12:07  [ТС]     Компиляция кода... не могу сообразить. #5
тогда вопрос еще один:
когда я скомпилирую в gcc и NASM как их скомпоновать?
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
13.06.2011, 20:04  [ТС]     Компиляция кода... не могу сообразить. #6
подскажите пожалуйста, компилю makefile в gcc 4.5 а он выдает мне сообщение:


serjeka@serjeka-VirtualBox:~/Рабочий стол/memtestMy$ gcc Makefile
Makefile: file not recognized: File format not recognized
collect2: ld returned 1 exit status


что ему надо и чего не хвотает?

Добавлено через 1 час 5 минут
сотворил я Makefile, в итоге я получил memtest разширение не известно. посути в Make написано что витоге я должен получить memtest.exe. проверил в винде этот файл, винда его не знает. я что-то пропустил? подскажите мне пожалуйста!

Добавлено через 18 минут
а да, и вот ещё, сотворилась куча файлов с расширение .о
компилирую через консоль в линухе
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
13.06.2011, 20:38     Компиляция кода... не могу сообразить. #7
Не правильно работаете с Makefile'ом. Надо просто в том же каталоге набрать make.
Есть некоторые сомнения, что оно станет собираться под винду.
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
13.06.2011, 21:35  [ТС]     Компиляция кода... не могу сообразить. #8
Цитата Сообщение от lemegeton Посмотреть сообщение
Не правильно работаете с Makefile'ом. Надо просто в том же каталоге набрать make..

именно так и использую!
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
13.06.2011, 23:12     Компиляция кода... не могу сообразить. #9
Цитата Сообщение от serjeka Посмотреть сообщение
serjeka@serjeka-VirtualBox:~/Рабочий стол/memtestMy$ gcc Makefile
Makefile: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Вот это не правильно.
Правильно будет вот так.
Код
:~/Рабочий стол/memtestMy$ make
Цитата Сообщение от serjeka Посмотреть сообщение
сотворил я Makefile
Сам написал? И что ты в нем написал?
Цитата Сообщение от serjeka Посмотреть сообщение
в итоге я получил memtest разширение не известно.
Выполняемую программа для текущей платформы, скорее всего. Проверь -- со второго по четвертый байты -- символы "ELF"? Значит точно под линукс бинарник собрался.
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
14.06.2011, 00:44  [ТС]     Компиляция кода... не могу сообразить. #10
Цитата Сообщение от lemegeton Посмотреть сообщение
Сам написал? И что ты в нем написал?


Выполняемую программа для текущей платформы, скорее всего. Проверь -- со второго по четвертый байты -- символы "ELF"? Значит точно под линукс бинарник собрался.
я через консоль make прописывал, вот... это я потом сообразил что так makefile есть)))))

memtest: ELF и куча ещё всякой дряни...

а вот сам файл makefile:

FDISK=/dev/fd0
AS=as -32
CC=gcc
CFLAGS= -Wall -march=i486 -m32 -O2 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector
OBJS= head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o \
config.o linuxbios.o memsize.o pci.o controller.o random.o spd.o \
error.o dmi.o cpuid.o
all: memtest.bin memtest
memtest_shared: $(OBJS) memtest_shared.lds Makefile
$(LD) --warn-constructors --warn-common -static -T memtest_shared.lds \
-o $@ $(OBJS) && \
$(LD) -shared -Bsymbolic -T memtest_shared.lds -o $@ $(OBJS)
memtest_shared.bin: memtest_shared
objcopy -O binary $< memtest_shared.bin
memtest: memtest_shared.bin memtest.lds
$(LD) -s -T memtest.lds -b binary memtest_shared.bin -o $@
head.s: head.S config.h defs.h test.h
$(CC) -E -traditional $< -o $@
bootsect.s: bootsect.S config.h defs.h
$(CC) -E -traditional $< -o $@
setup.s: setup.S config.h defs.h
$(CC) -E -traditional $< -o $@
memtest.bin: memtest_shared.bin bootsect.o setup.o memtest.bin.lds
$(LD) -T memtest.bin.lds bootsect.o setup.o -b binary \
memtest_shared.bin -o memtest.bin
reloc.o: reloc.c
$(CC) -c $(CFLAGS) -fno-strict-aliasing reloc.c
test.o: test.c
$(CC) -c -Wall -march=i486 -m32 -Os -fomit-frame-pointer -fno-builtin -ffreestanding test.c
clean:
rm -f *.o *.s *.iso memtest.bin memtest memtest_shared memtest_shared.bin
asm:
@./makedos.sh
iso:
make all
./makeiso.sh
rm -f *.o *.s memtest.bin memtest memtest_shared memtest_shared.bin
install: all
dd <memtest.bin >$(FDISK) bs=8192
install-precomp:
dd <precomp.bin >$(FDISK) bs=8192
dos: all
cat mt86+_loader memtest.bin > memtest.exe

makefile родной из memtest86+. я ничего не ковырял.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
14.06.2011, 01:10     Компиляция кода... не могу сообразить. #11
Цитата Сообщение от serjeka Посмотреть сообщение
memtest: ELF и куча ещё всякой дряни...
Ну и все хорошо. Собрался проект. Создался исполняемый файл. Что еще нужно-то?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2011, 17:41     Компиляция кода... не могу сообразить.
Еще ссылки по теме:

C++ Не могу сообразить как написать
C++ не могу сообразить процесс или предпроцесс это
Не могу сообразить рекурсию C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
12.07.2011, 17:41  [ТС]     Компиляция кода... не могу сообразить. #12
Цитата Сообщение от lemegeton Посмотреть сообщение
Что еще нужно-то?
уже ничего))))
я его прокомпилил и залил на флопии! все работает) уже разобрасля))))
спасибо большое за помошь)
Yandex
Объявления
12.07.2011, 17:41     Компиляция кода... не могу сообразить.
Ответ Создать тему
Опции темы

Текущее время: 17:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru