添加路径到你的新库是LD_LIBRARY_PATH
(它在Mac上略有不同的名字......)
您的解决方案应该使用-L/my/dir -lfoo
选项,在运行时使用LD_LIBRARY_PATH指向库的位置。
OR
通过GCC使用rpath的选项链接器 - 运行时库搜索路径,将使用 而不是查找在标准目录(GCC选项):
-Wl,-rpath,$(DEFAULT_LIB_INSTALL_PATH)
这是很好的一个临时解决方案在查看标准目录之前,链接器首先搜索LD_LIBRARY_PATH库。
如果你不想永久更新LD_LIBRARY_PATH你可以做到这一点对命令行飞:
LD_LIBRARY_PATH=/some/custom/dir ./fooo
您可以检查哪些库链接器知道如何使用(例如):
/sbin/ldconfig -p | grep libpthread
libpthread.so.0 (libc6, OS ABI: Linux 2.6.4) => /lib/libpthread.so.0
你可以检查你的应用程序正在使用的库:
ldd foo
linux-gate.so.1 => (0xffffe000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7f9e000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7e6e000)
librt.so.1 => /lib/librt.so.1 (0xb7e65000)
libm.so.6 => /lib/libm.so.6 (0xb7d5b000)
libc.so.6 => /lib/libc.so.6 (0xb7c2e000)
/lib/ld-linux.so.2 (0xb7fc7000)
libdl.so.2 => /lib/libdl.so.2 (0xb7c2a000)
libz.so.1 => /lib/libz.so.1 (0xb7c18000)
还有哪些'libfoo。*'文件存在,哪里有'.so'没有'.0','.a'等等? – 2010-04-28 05:20:38