setup.py ld не может найти присутствующую библиотеку, пути настроены
-
11-12-2019 - |
Вопрос
Я пытаюсь собрать интерфейс Cython к библиотеке C, используя этот урок: Использование C Библиотеки с Cython но когда я пойду на это с:
python2 setup.py build_ext -i
.
Линкер не может найти библиотеку (имя библиотеки - libHorde3D
)
gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu build/temp.linux-x86_64-2.7/horde3d.o -L/usr/lib -llibHorde3D -lpython2.7 -o /home/kiril/workspace/horde3d_python/cython/horde3d.so
/usr/bin/ld: cannot find -llibHorde3D
.
Это очень своеобразно, так как libhorde3d.so присутствует в моем / usr / lib и в моем / opt / lib, путь поиска для линкера настроен в /etc/ld.conf, чтобы посмотреть в эти каталоги, и я попробовал Установка пути поиска со следующими переменными: Ld_library_path, liblic_path, ldflags, а также путем проходящего его прямо:
python2 setup.py build_ext -i -L/opt/lib
.
Я сделал генеракодицетагкод, и библиотека перечислена:
/usr/lib:
libHorde3D.so -> libHorde3D.so
/opt/lib:
libHorde3D.so -> libHorde3D.so
.
Для хорошей меры я пытался изменить владельца на «root», все еще ничего.
Что происходит здесь? Тем более, что я могу связать библиотеку, если линкер вызывается из кода :: Блоки (при работе на одном дополнительном C ++).
Спасибо заранее!
Решение
Я думаю, вам просто нужно просто удалить слово lib
из вашего аргумента -l
, поэтому измените его на -lHorde3D