Circumvent ld查找

时间:2012-04-23 14:16:59

标签: c++ gcc shared-libraries ld search-path

将我的工具链安装在不同于其供应商请求的目录中,我已经通过适当设置COMPILER_PATH,C_INCLUDE_PATH,CPLUS_INCLUDE_PATH和LIBRARY_PATH变量来解决一些较小的问题。

但是,有一个问题我似乎无法轻易避开:

beo-it@bsrv01:/tmp/async$ xscale-linux-g++ -fPIC -DBOOST_ASIO_DISABLE_EPOLL -I/var/lib/c++/boost/boost_1_48_0/target/arm-linux-4.4.2/include -oasync main.cpp -L/var/lib/c++/boost/boost_1_48_0/target/arm-linux-4.4.2/lib/static -pthread -lboost_system -lboost_thread
/var/toolchains/arm-linux/4.4.2/arm-linux-4.4.2/arm-linux/bin/ld: cannot find /usr/local/arm-linux-4.4.2/lib/be/libpthread.so.0
collect2: ld returned 1 exit status

我不确定为什么ld会通过绝对路径寻找一个库,但这正是这里的情况。有没有办法绕过这种行为并为它提供共享库的正确路径?

1 个答案:

答案 0 :(得分:0)

我唯一能想到的是将符号链接放在实际看起来的位置,但将其指向正确的文件。