Page 1 of 1

Помощь в прикрутке gcc

Posted: Tue Jun 14, 2011 9:18 am
by coolpr
Значит так:
прочитал http://diamond.kolibrios.org/hll/hll.htm
скачал http://diamond.kolibrios.org/menuetlibc.7z
распаковал в домашнем каталоге
сделал export MENUETDEV= ...
cd menuetlibc
make
все прошло отлично .

Теперь беру пример из описания, делаю hello.c делаю makefilе
пробую make -
hello.о собрался бинарника нет

дальше не разбирался.

Re: Помощь в прикрутке gcc

Posted: Tue Jun 14, 2011 9:32 am
by SoUrcerer
Держу пари, ругается ld на то, что нет точки входа в программу.
Статью diamond'а никто не обновлял, и там указана устаревшая информация. Главная функция должна называться main (как в стандарте Си), а не app_main (так было когда-то давно в menuetlibc). Этот вопрос уже задавался (в том числе мной) на форуме. Предлагаемое решение: заменить app_main на main. Должно помочь.

Кроме menuetlibc, можно использовать newlib (это такой libc от red hat). На мой взгляд, он функциональнее, чем menuetlibc, хотя и прожорливее в плане размера бинарников. Потребуется компилятор mingw (для многих linuxов есть в репозиториях), скомпилированная библиотека (брать на форуме, в разделе Прикладные библиотеки) и заголовочные файлы (можно использовать те, что лежат на svn в папке programs/develop/libraries/newlib или как-то так)

Re: Помощь в прикрутке gcc

Posted: Tue Jun 14, 2011 10:05 am
by <Lrz>
Sorcerer
Может тогда сделаешь коррекцию мануала от diamond'a? Или напишешь свою статью на тему hello world и gcc ?

Re: Помощь в прикрутке gcc

Posted: Tue Jun 14, 2011 10:37 am
by SoUrcerer
Скорее напишу свою статью. Слишком много нюансов в статье diamond'а не учтено, и это понятно - цель была не рассказать, как работать с gcc, а показать, что это вообще возможно.

Re: Помощь в прикрутке gcc

Posted: Tue Jun 14, 2011 2:36 pm
by coolpr
Попробовал скопировать код и мейк из programs/binclock сработало вроде без ошибок. Значит код был кривой.
теперь еще вопрос:

1. объектный файл стандартный для gcc получается? если да то как точно сказать компилятору использовать только наши инклуды и в сторону не смотреть?

2. если не использовать Makefile_for_program то как самому написать корректный Makefile для сборки бинарника, пробовал не получилось что то.

3. а еще хотелось бы иногда иметь возможность инклудить исходный код функций, а не готовые стат. библиотеки. Вот как это настроить я тоже пока не разобрался.

Re: Помощь в прикрутке gcc

Posted: Wed Jun 15, 2011 12:48 pm
by coolpr
Так что, кто нибудь прояснит?

Re: Помощь в прикрутке gcc

Posted: Wed Jun 15, 2011 12:57 pm
by SoUrcerer
1) Объектный файл - обычный объектный файл. Makefile как раз и говорит использовать только menuetlibc-инклуды.
2) Есть же исходники makefile'ов всех - их можно брать за основу. Просто тот же самый makefile_for_program взять и переписать
3) Зачем подключать исходный код? Исходный код чего именно? Библиотеки и так все статически линкуются для melibc

Re: Помощь в прикрутке gcc

Posted: Wed Jun 15, 2011 1:20 pm
by coolpr
Sorcerer wrote: 3) Зачем подключать исходный код? Исходный код чего именно? Библиотеки и так все статически линкуются для melibc
Код функции, допустим его нужно модифицировать, но библиотеку при этом не трогать.

Re: Помощь в прикрутке gcc

Posted: Wed Aug 17, 2011 3:37 pm
by SoUrcerer
Исходники библиотек доступны. Компилируй, собирай, используй. Коммунизм.
А подключать напрямую исходный код библиотек - это как-то страннннно.