2014-01-29 65 views
0

當我LDD我的計劃,我得到等等這一行LDD找到libQtCore神奇

libQtCore.so.4 => /Soft/fox_dev/Qt-4.7.4/lib/libQtCore.so.4 

但是這條道路既不是我的道路也不在我LD_LIBRARY_PATH和執行:

set | grep -i qt 

我發現「bin」倉庫只在我的路徑中

/Soft/fox_dev/Qt-4.7.4/bin/ 

但是沒有任何環境變量設置爲QtCore庫的路徑。

問題:如何在「LDD」命令找到這條道路? (該方案還執行罰款)

+0

東西在makefile? –

+0

以及沒有在make文件-L /路徑特殊/到/庫-lQtCore – user2346536

+0

你的意思是從生成文件,有可能是一些在可執行文件,將指示ldd命令到依賴的絕對路徑?這是非常危險的,因爲它根本不可行! – user2346536

回答

1

LDD實際執行使用負荷跟蹤你的程序。加載程序(ld.so或ld-linux.so)使用通過在一個或多個.so文件安裝在目錄中後運行ldconfig創建的緩存。你可以找到相關信息here。 如果你想使用不同的Qt安裝,有幾種方法可以覆蓋它。最簡單的一個,是設置

export LD_LIBRARY_PATH=<my Qt libs location>:$LD_LIBRARY_PATH 

的腳本,然後運行像

bash --posix # avoid changing the LD_LIBRARY_PATH again by sourcing configuration file 

這是一個殼將只與您選擇的Qt的安裝運行程序,而不會影響系統中安裝的其他程序。 如果你不關心這個,那麼你可以在你的shell配置文件或bashrc等中添加這個,這取決於你使用的是什麼shell。還有一件事:如果你的程序通過鏈接加載,例如libQtCore.so或libQtCore.so.5等,那麼你需要在「我的Qt庫位置」中創建這些鏈接,如果它們是還沒有。

希望這會有所幫助。

+0

謝謝...這是我的問題的答案 – user2346536