LINUX.ORG.RU

как использовать статистические библиотеки?


0

0

Имеется проект (С++) из нескольких фаилов + main.cpp. Все обьектные файлы (кроме main.o) я собрал в одну библиотеку путем
ar rcs libmoj.a *.o
Теперь я делаю что то в роде
gcc -L/path/to/lib/ -lmoj main.cpp
а он ругается про undefined reference'ы, хотя когда я пытаюсь построить программу целеком, никаких проблем нет.

Что я делаю не то?

★★

Хеадеры для библиотеки есть?
Библиотека c++?
если выше ответы да, то попробуй указать так:
g++ -l/path/to/lib/lmoj.a main.cpp

anonymous
()
Ответ на: комментарий от anonymous

вообще-то, без -l.

надо либо полностью указать путь к libmoj.a каковую линкер воспринимает как архив объектников и действует соответственно, либо указывать ключ -static

ananas ★★★★★
()
Ответ на: комментарий от sS

а почему нет? ну подумаешь, глибсы и прочая системщина тоже статиком зацепятся, так это-же мелочи :))))))))

ananas ★★★★★
()
Ответ на: комментарий от ananas

>>а почему нет? ну подумаешь, глибсы и прочая системщина тоже статиком зацепятся, так это-же мелочи :))))))))

Ну да , 350К туда, 350К сюда, футы мелочи какие :)

Dead ★★★★
()

А почему такой порядок?

Линкер проходит по командной строке ровно один раз, и тащит из библиотеки только то, что нужно _в данный момент_. К моменту обработки libmoj.a ни один символ из нее еще не затребован. Когда же их начинает просить main, поезд уже ушел. Т.е.:

gcc -L... main.cpp -lmoj

Подробности в info gcc->Invoking->Linker options.

vnp
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.