URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 879
[ Назад ]

Исходное сообщение
"Компиляция, компоновка"

Отправлено Sequel , 06-Авг-02 06:29 
Привет всем!
Почему не работает редактор связей ld?
Стоит FreeBSD 4.5.
Пишу простейший файл на C, содержащий только printf("Hello world")
компилирую его с помощью сс до объектного, затем запускаю LD и вижу сообщения
ld: warning: cannot find entry symbol _start
а потом
undefined reference to 'printf'


Содержание

Сообщения в этом обсуждении
"RE: Компиляция, компоновка"
Отправлено Арлекин , 06-Авг-02 08:04 
Си имеет несколько run-time бииблиотек, типа libC.a и т.п. которые надо цеплять при ld-ке. Список можно найти в манах. А вообще, по-моему все компилеры позволяют сразу и линковать. Ключик -о есть. Что касается сс - это встроенный компилер системы, кастрированный до безобразия, предназначенный для сборки ядра и дров. Если есть неуемное желание повозиться с ним - рой доку. Если нет желания - ставь гнутый и забудь про стандартные либы.

"RE: Компиляция, компоновка"
Отправлено Аноним , 07-Авг-02 12:09 
Вопрос должен жить в FAQ.

>Си имеет несколько run-time бииблиотек, типа libC.a и т.п. которые надо цеплять
>при ld-ке. Список можно найти в манах. А вообще, по-моему все
>компилеры позволяют сразу и линковать. Ключик -о есть. Что касается сс
>- это встроенный компилер системы, кастрированный до безобразия, предназначенный для сборки
>ядра и дров. Если есть неуемное желание повозиться с ним -
>рой доку. Если нет желания - ставь гнутый и забудь про
>стандартные либы.

Не надо на cc катить баллон. Нормальный компилятор. Человек напрямую
вызывает ld.
При таком вызове надо не забыть crt0.o, библиотеки (как было сказано),
при случае -- crtend.o, и все в нужном порядке (ld проходит по командной
строке один раз). Попробуйте собрать свою аппликацию посредством cc -v;
там увидите командную строчку ld.