2013-07-22 3 views
1

Я не могу связать свою программу с разделяемой библиотекой, расположенной в нестандартном каталоге OSX lib. Я получил эту библиотеку из MacPorts и он находится в/Opt/местные/Библиотека:Не удается связать с общей библиотекой

$ ls /opt/local/lib/libgmp* 
/opt/local/lib/libgmp.10.dylib /opt/local/lib/libgmpxx.4.dylib 
/opt/local/lib/libgmp.a   /opt/local/lib/libgmpxx.a 
/opt/local/lib/libgmp.dylib  /opt/local/lib/libgmpxx.dylib 
/opt/local/lib/libgmp.la  /opt/local/lib/libgmpxx.la 

Я обнаружил, что можно использовать DYLD_FALLBACK_LIBRARY_PATH, но это не работает для меня:

$ DYLD_LIBRARY_PATH=/opt/local/lib gcc ab.c -lgmp 
ld: library not found for -lgmp 
collect2: ld returned 1 exit status 
+1

попробуйте gcc ab.c -L/opt/local/lib -lgmp – Icarus3

+0

Спасибо, это работает. Можете ли вы преобразовать комментарий в ответ? – dzhioev

ответ

1

Во время выполнения DYLD_LIBRARY_PATH помогает динамическому компоновщику находить библиотеки из нестандартных каталогов.

В вашем случае вы все еще находитесь в фазе компиляции. Чтобы gcc узнать об этих дополнительных каталогах для поиска, вы можете использовать -L-переключатель.

например.

gcc ab.c -L/opt/local/lib -lgmp 
Смежные вопросы