LD_LIBRARY_PATH에 문제가 있어 프로그램이 라이브러리를 찾을 수 없습니다.

LD_LIBRARY_PATH에 문제가 있어 프로그램이 라이브러리를 찾을 수 없습니다.

나는 stackoverflow에서 이 질문을 했지만 Linux 관련 질문이기도 하며 여기 누군가가 해결책을 알고 있을 수도 있습니다. 괜찮기를 바랍니다.

문제는 ARM Linux의 Paraprof 프로그램에서 3D 시각화를 실행할 수 없다는 것입니다. 저는 OpenMPI와 함께 armhf Debian Wheezy 7.1을 사용하여 소규모 클러스터(8개 노드)를 실행하고 있습니다.

저는 Paraprof라는 정말 멋진 시각화 도구가 있는 Tau OpenMPI 프로파일링 도구를 사용하고 있습니다.

3D 시각화에 paraprof를 사용하는 데 문제가 있습니다. 실행하려고 하면 다음과 같이 표시됩니다.

/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

경로가 2배로 늘어나서 라이브러리 경로 설정 문제인 것 같아요. 흥미롭게도 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용 Tau 패키지가 있다는 것을 알았습니다(또는 적어도 raspbian용 패키지가 있음). 그러나 이것이 에 설치되는지 의심스럽기 /home/cluster때문에 분명히 다른 것을 사용하고 있는 것입니다.

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

관련 정보