|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Zahar Kiselev 2:5030/382.1 25 Jan 2003 21:49:32 To : Eugene Karpachov Subject : Re: неопределенные символы --------------------------------------------------------------------------------
Jan 25 15:02 03, Eugene Karpachov wrote to Zahar Kiselev:
>> с ключем -static. Если этот ключ убрать - то линкер говорит, что
>> в библиотеке два неопределенных символа - s_cmp и s_copy.
>> Почему так - не знаю. Может быть кто-нибудь может высказать
>> предположение?
EK> Предположение такое: неверный порядок библиотек в командной строке и
EK> однопроходный режим линковки. Для уточнения надо разглядеть глазами
EK> командную строку, которая подаётся линкеру, и либо поменять порядок
EK> следования библиотек, либо включить их в командную строку нужное
EK> число раз в нужных местах, либо задать ключ для многопроходной линковки.
Строчка простейшая ld -o testprg testprg.o -lplplot -lX11 -lm (ну и указание
пути к иксовой библиотеке, которое я опустил как несущественное).
Если перед всем этим поставить -static оно собирается, если нет - вылезают
неопределенные символы s_copy и s_cmp.
Причем смотрение при помощи objdump так и не помогло мне понять, где, в какой
библиотеке, эти символы определены. В libplplot они показываются с
буквой U (undef), но где-то же они есть если статиком линкуется? Вот это больше
всего удивляет.
Вообще говоря я не ожидал, что в 2003 году линкер может быть по умолчанию
однопроходным. Чтение man ld не помогло найти ключик для включения
многопроходности. Сейчас попробую несколько раз библиотеки в командной строке
указать.
Zahar(@spbdept.rbc.ru)
--- Msged/LNX 6.1.0
* Origin: Остров Большой Березовый: http://birch-island.spb.ru (2:5030/382.1)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/32883e32f20c.html, оценка из 5, голосов 10
|