2013-07-22 94 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