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

Исходное сообщение
"Порядок линковки в ld."

Отправлено divan , 20-Янв-04 10:33 
Господа, подскажите, есть ли способ заставить линкер менять порядок обработки входных object-файлов и библиотек или вообще не зависеть от порядка?

Если конкретнее, то проблема в следующем. Есть IDE, которая генерит Makeflie.am, configure.in и прочий autotools stuff :) Есть проект, пишушийся в этом IDE, который юзает статическую библиотеку из другого проекта. Сгенерированная IDE строка линкования выглядит примерно так:
gcc -g ... -L../mylibdir -lmylib foo.o ... bar.o
bar.o юзает функции из mylib, и они не линкуются(undefined reference to..)
В принципе в мане так и написано. :-)
Не сильно хочется править IDE, по этому собственно и вопрос. Может быть есть какой-то параметр или хитрый способ, чтобы обойти это?


Содержание

Сообщения в этом обсуждении
"Порядок линковки в ld."
Отправлено ChiP , 20-Янв-04 15:16 
>Господа, подскажите, есть ли способ заставить линкер менять порядок обработки входных object-файлов
>и библиотек или вообще не зависеть от порядка?
>Если конкретнее, то проблема в следующем. Есть IDE, которая генерит Makeflie.am, configure.in
>и прочий autotools stuff :) Есть проект, пишушийся в этом IDE,
>который юзает статическую библиотеку из другого проекта. Сгенерированная IDE строка линкования
>выглядит примерно так:
>gcc -g ... -L../mylibdir -lmylib foo.o ... bar.o

Укажи параметры для линкера после объектных модулей, т.е.

gcc -g ... foo.o ... bar.o -L../mylib -lmylib


"Порядок линковки в ld."
Отправлено divan , 20-Янв-04 15:28 
>Укажи параметры для линкера после объектных модулей, т.е.
>
>gcc -g ... foo.o ... bar.o -L../mylib -lmylib
Ну это понятно :) Дело в том, что эта строка генериться IDE, я её править не могу - точнее могу, но при пересборке проекта она вновь исправляется.


"Порядок линковки в ld."
Отправлено Soldier , 20-Янв-04 18:02 
>>Укажи параметры для линкера после объектных модулей, т.е.
>>
>>gcc -g ... foo.o ... bar.o -L../mylib -lmylib
>Ну это понятно :) Дело в том, что эта строка генериться IDE,
>я её править не могу - точнее могу, но при пересборке
>проекта она вновь исправляется.

Чей то зАмкнутый круг получается: ничего изменять нельзя, но что бы что то обойти
надо что-то изменить :)))

Хотя вот способ (но я бы лучше IDE исправил...) Подсовывем свой gcc, в нем
обрабатываем параметры, переставляем местами все что нужно (или добавляем еще
каких-нибудь параметров) и вызываем настоящий gcc с измененными параметрами :)))


"Порядок линковки в ld."
Отправлено divan , 21-Янв-04 10:13 
>Чей то зАмкнутый круг получается: ничего изменять нельзя, но что бы что
>то обойти
>надо что-то изменить :)))
Нет, ну не совсем :) - Можно указывать параметры компиляртора и линкера.
А IDE я уже поправил...