The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Порядок линковки в 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, 15:16 , 20-Янв-04 (1)
    >Господа, подскажите, есть ли способ заставить линкер менять порядок обработки входных 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, 15:28 , 20-Янв-04 (2)
      >Укажи параметры для линкера после объектных модулей, т.е.
      >
      >gcc -g ... foo.o ... bar.o -L../mylib -lmylib
      Ну это понятно :) Дело в том, что эта строка генериться IDE, я её править не могу - точнее могу, но при пересборке проекта она вновь исправляется.


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

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

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


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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру