2013-07-22 106 views
1

我無法將程序與位於非標準OSX lib目錄中的共享庫鏈接。我從MacPorts的得到了這個庫,它位於/ opt/local/lib目錄:無法與共享庫鏈接

$ 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