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:~#

오픈GL:

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(또는 적어도 raspbian용)에 사용할 수 있는 Tau 패키지가 있다는 것을 알았습니다. 그러나 이것이 에 설치될지는 의심스럽기 /home/cluster때문에 분명히 다른 것을 사용하고 있는 것 같습니다.

시스템에서 모든 것을 컴파일한 경우에도 이런 일이 발생해서는 안 됩니다. 그러나 다른 곳에서 바이너리를 복사/빌드했다면 문제가 됩니다(ARM 아키텍처가 두 개 이상 있음). distro 패키지를 사용하지 않는 이유가 있나요?

관련 정보