LINUX.ORG.RU

ld не видит либу

 


0

2

Делаю

gcc -lloudmouth test-lm.c
Получаю
/usr/bin/ld: cannot find -lloudmouth
collect2: error: ld returned 1 exit status
Либа есть, мкаббер ей нормально пользуется например. Путь к директории верен, ибо с другими либами оттуда же нормально линкуется. Помогите

Не вижу у тебя в командной строке пути к директории с либами. Кроме того, либы бывают динамические и статические.

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

Пути в ld.so.conf - для ld.so, не для ld. ld.so - runtime компоновщик, ld - compile time компоновщик, это разные вещи.

Если твоя либа лежит вне стандартных директорий (/lib, /usr/lib, диры компилятора), то ты должен указать компилятору (и, таким образом, компоновщику) путь к ней с помощью ключа -L:

gcc -L/path/to/library/dir -lmycoollib mycode.c

tiandrey ★★★★★ ()

Первое предложение без вопроса.

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

Само собой он есть, хедеры ведь я подключал как-то. Ну, в любом случае устанавливал его.

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

Плюсую этого анонимуса. Порядок играет роль. Ну и путь указать не забыть, если оно не в умолчальном месте лежит.

beastie ★★★★★ ()

Ладно пофиг, тупо указываю .со-файл. Но там какой-то функции нету, версия старая кажется. Вычищу и сконпелю из сорцов. Топик помечаю решенным, почему -л не ищет — загадка.

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

Манязагадка, уже напсали, что у тебя нет .so а только .so.0

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

А в чем разница?

А разница в том, что для линковки нужно .so, у тебя dev пакет не установлен.

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