我已经在 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 架构)。您有不使用发行版软件包的理由吗?