Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
#1

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

11.06.2011, 01:54. Просмотров 1641. Ответов 11
Метки нет (Все метки)

Доброго времени суток уважаемые форумчане!
Прошу помочь с решением проблемы:
есть исходники memtest86+, скачал чтоб разобраться как грамотно писать загрузку из-под БИОСа, так вот, скачал, просмотрел, вроде все понятно но компилятор MVS 2010 при компиляции как проект makefile говорит что не может создать и запустить *.ехе, я так посмотрел что в коде есть примеси ассемблера, а сам код на С, может в этом где-то вся загвоздка?
подскажите решение проблемы, 4-й день мудрю((((((
как правильно его собрать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2011, 01:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Компиляция кода... не могу сообразить. (C++):

не могу сообразить) - C++
дана f(x). дан отрезок на котором расположены положительные корни дана точность E могу написать функцию, для нахождения одного корня...

Не могу сообразить, замучался - C++
Описать переменную «Расписание», содержащую: день недели, номер пары, название предмета, фамилию преподавателя. Вывести полную информацию о...

Не могу сообразить рекурсию - C++
Здравствуйте...помогите пожалуйста с рекурсией...мне это нужно для другой работы но я решил взять пример полегче, что бы потом переложить...

Соединение массивов. Не могу сообразить. - C++
Задание таково. Создать шаблон функции, а так же к ней тело проги которое будет из 2ух масивов делать третий упорядочивать его по...

Не могу сообразить как написать - C++
Нужно в числе N посчитать сколько раз встречается каждая цифра. Нужно сделать через массивы.

не могу сообразить задачу, объясните её пожалуйста - C++
1.Определить все симметричные натуральные числа в промежутке от А до В (А и В вводятся с клавиатуры). Я пытался решить задачу...

11
lemegeton
2931 / 1360 / 136
Регистрация: 29.11.2010
Сообщений: 2,725
11.06.2011, 11:11 #2
Откройте Makefile в текстовом редаткторе и вы увидите, что он заточен под компилятор gcc. Плюс нужен насм. И что такое "загрузка из-под-биоса?!" memtest должен грузиться уже после загрузчика или самим загрузчиком.
1
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
11.06.2011, 12:03  [ТС] #3
когда я писал "загрузка из-под БИОСа"я имел в виду вне ОС...
спасибо большое... ща попробуем)
0
talis
793 / 545 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.06.2011, 12:06 #4
Вполне возможно, что в исходниках memtest используются ассемблерные вставки gcc, они там не как у microsoft. + диалект, скорее всего, AT&T, а не Intel...
1
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
11.06.2011, 12:07  [ТС] #5
тогда вопрос еще один:
когда я скомпилирую в gcc и NASM как их скомпоновать?
0
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 минут
а да, и вот ещё, сотворилась куча файлов с расширение .о
компилирую через консоль в линухе
0
lemegeton
2931 / 1360 / 136
Регистрация: 29.11.2010
Сообщений: 2,725
13.06.2011, 20:38 #7
Не правильно работаете с Makefile'ом. Надо просто в том же каталоге набрать make.
Есть некоторые сомнения, что оно станет собираться под винду.
1
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
13.06.2011, 21:35  [ТС] #8
Цитата Сообщение от lemegeton Посмотреть сообщение
Не правильно работаете с Makefile'ом. Надо просто в том же каталоге набрать make..

именно так и использую!
0
lemegeton
2931 / 1360 / 136
Регистрация: 29.11.2010
Сообщений: 2,725
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"? Значит точно под линукс бинарник собрался.
1
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+. я ничего не ковырял.
0
lemegeton
2931 / 1360 / 136
Регистрация: 29.11.2010
Сообщений: 2,725
14.06.2011, 01:10 #11
Цитата Сообщение от serjeka Посмотреть сообщение
memtest: ELF и куча ещё всякой дряни...
Ну и все хорошо. Собрался проект. Создался исполняемый файл. Что еще нужно-то?
1
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
12.07.2011, 17:41  [ТС] #12
Цитата Сообщение от lemegeton Посмотреть сообщение
Что еще нужно-то?
уже ничего))))
я его прокомпилил и залил на флопии! все работает) уже разобрасля))))
спасибо большое за помошь)
0
12.07.2011, 17:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2011, 17:41
Привет! Вот еще темы с ответами:

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

Не могу сообразить с сортировкой, и с последним пунктом - C++
Описать структуру STUDENT, содержащую следующие поля: Фамилия и инициалы номер группы успеваемость(массив из пяти элементов) ...

не могу сообразить процесс или предпроцесс это - C++
max=A; процесс или предпроцесс max_i=0; процесс или предпроцесс Добавлено через 1 минуту помогите пожалуйста

Не могу сообразить как подружить свой класс с fileoutputstream - C++
В общем задача такая: на входе один или несколько текстовых файлов, читаю его, заношу все слова в двусвязный список на хипе, сортирую по...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru