2012-04-23 77 views
1

將我的工具鏈安裝到不同於其供應商請求的目錄中後,我一直在通過適當地設置COMPILER_PATH,C_INCLUDE_PATH,CPLUS_INCLUDE_PATH和LIBRARY_PATH變量輕鬆解決一些較小的問題。Circumvent ld lookup

然而,有一個問題,這似乎躲閃,我不能那麼容易:

[email protected]:/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要尋找一個絕對路徑庫,但是這正是在這裏似乎是這種情況。有什麼方法可以規避這種行爲併爲共享庫提供正確的路徑?

+0

你檢查過你的'ldconfig'設置嗎?也許它在那裏,仍然卡在緩存中。參考'man ldconfig'。 – 2012-04-23 15:37:25

回答

0

我能想到的唯一方法就是將符號鏈接放在實際看起來的位置,但將它指向正確的文件。

+0

感謝您的回覆。不幸的是,這當然正是我想在這裏避免的。我將工具鏈安裝在不同的目錄中,因爲我的一些工具鏈默認會分配相同的路徑。爲了讓它們安裝在同一個系統上,我需要它們在不同的目錄中,並且不能使用它們中的任何一個的符號鏈接。 – 2012-04-23 15:24:35