LD_LIBRARY_PATH 有問題,程式找不到函式庫。

LD_LIBRARY_PATH 有問題,程式找不到函式庫。

我已經在 stackoverflow 上問過這個問題,但這也是一個與 Linux 相關的問題,這裡有人可能知道解決方案。希望沒事。

問題是我無法在 ARM Linux 上的 Paraprof 程式中執行 3D 視覺化。我正在使用帶有 OpenMPI 的armhf Debian Wheezy 7.1 運行一個小型叢集(8 個節點)。

我正在使用 Tau OpenMPI 分析工具,它有一個非常好的視覺化工具,稱為 Paraprof。

我在使用 paraprof 進行 3D 視覺化時遇到問題。當我嘗試運行它時,它說:

/home/cluster/tool/tau-2.22.2/lib/libjogl_drihack.so :/home/cluster/tool/tau-2.22.2/lib/libjogl_drihack.so cannot open shared object: No such file or directory

我認為這是庫路徑設定的問題,因為路徑加倍了。有趣的是 libjogl_drihack.so 就在這個目錄。 LD_LIBRARY_PATH 設定正確為:

/usr/local/lib/:/home/cluster/tools/tau-2.22.2/arm_linux/lib/

OpenGL 已安裝(我可以運行 glxinfo)和所有 libjogl 軟體包。

附上螢幕截圖。https://www.dropbox.com/s/x54xpo5c2kjzew8/tau1.png https://www.dropbox.com/s/mimze22pcl6vxkq/tau2.png

更多資訊:

root@master:~# ldd
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libjogl_drihack.so
    not a dynamic executable
root@master:~# ls /home/cluster/tools/tau-2.22.2/arm_linux/lib/lib*.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libjogl_awt.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libjogl_drihack.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libjogl.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libTauDisable.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libTAUsh-depthlimit-mpi-pdt.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libTAUsh-depthlimit-mpi-pdt-trace.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libTAUsh-mpi-pdt.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libTAUsh-mpi-pdt-trace.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libTAUsh-param-mpi-pdt-profile-trace.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libTAUsh-param-mpi-pdt.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libTAUsh-pthread-pdt.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libTAUsh-pthread.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libTAUsh.so
/home/cluster/tools/tau-2.22.2/arm_linux/lib/libTAU.so
root@master:~# uname -a
Linux master 3.8.13-bone26 #1 SMP Fri Aug 16 20:56:24 UTC 2013 armv7l GNU/Linux
root@master:~#

OpenGL:

root@master:~$ glxinfo | grep OpenGL
OpenGL vendor string:Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string: 2.1 Mesa 8.0.5
OpenGL shading language version string: 1.20
OpenGL extensions

Tau 的配置腳本在/usr/lib 目錄中尋找libGL.so,在我的系統上該檔案位於/usr/lib/arm-linux-gnueabihf 中,所以我將其複製到/usr/lib 中,但仍然沒有運氣。同樣的錯誤仍然存在。

答案1

/home/cluster/tools/tau-2.22.2/arm_linux/lib/libjogl_drihack.so
    not a dynamic executable

這就是它所說的意思。它是以下一項或多項:

  • 不是真正的 .so 檔。
  • 不可執行。
  • 針對不同的架構進行編譯。

檢查輸出file libjogl_drihack.so(您需要那裡的正確路徑)。

我不是 openMPI 或 Tau 用戶,但我注意到有一個適用於 armhf Wheezy 的 Tau 軟體包(或至少有適用於 raspbian)。但是,我懷疑這會安裝到 中/home/cluster,所以顯然您正在使用其他東西。

如果您在系統上編譯了整個內容,則不應該發生這種情況。但是,如果您從其他地方複製/建立二進位文件,那就是您的問題(請注意,有不止一種 ARM 架構)。您有不使用發行版軟體包的理由嗎?

相關內容