라이브러리 경로 세부 정보 (-L 옵션으로 컴파일 됨)가있는 makefile을 사용하여 모듈의 실행 파일을 만들었습니다. 필요한 모든 라이브러리가 해당 경로에 있으며 설정되어 있습니다 LD_LIBRARY_PATH 환경 변수.하지만 여전히 dbx에서 실행 파일을 실행하는 동안 다음 오류가 발생합니다.ld.so가 필요한 라이브러리를로드 할 수 없습니다.
dbx MsgServer
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.2' in your .dbxrc
Reading MsgServer
Reading ld.so.1
ld.so.1: MsgServer: fatal: libcp.so: open
failed: No such file or directory
terminating signal 9 SIGKILL
라이브러리가 연결되지 않은 이유를 알아 내기가 어렵습니다. 여기에 ldd의 출력이 나와 있습니다.
ldd MsgServer
libcp.so => (file not found)
libftux.so => (file not found)
libfldap.so => (file not found)
libfdmq.so => (file not found)
libfbsafe.so => (file not found)
libdmq.so => /opt/messageq/lib/libdmq.so
libmqic.so => /usr/lib/libmqic.so
libsocket.so.1 => /usr/lib/libsocket.so.1
libc.so.1 => /usr/lib/libc.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libCstd.so.1 => /usr/lib/libCstd.so.1
libCrun.so.1 => /usr/lib/libCrun.so.1
libm.so.1 => /usr/lib/libm.so.1
libw.so.1 => /usr/lib/libw.so.1
libthread.so.1 => /usr/lib/libthread.so.1
libmqmcs.so => /usr/lib/libmqmcs.so
librt.so.1 => /usr/lib/librt.so.1
libmqiz.so => /opt/mqm/lib/libmqiz.so
libmp.so.2 => /usr/lib/libmp.so.2
libaio.so.1 => /usr/lib/libaio.so.1
/usr/platform/SUNW,Sun-Fire/lib/libc_psr.so.1
/usr/lib/cpu/sparcv8plus/libCstd_isa.so.1
도움을 주시면 감사하겠습니다.
LD_LIBRARY_PATH를 내 보냅니 까? 라이브러리가 올바른 디렉토리에 있습니까? 라이브러리가 앱과 동일한 ABI 및 CPU로 컴파일되어 있습니까? – haael
LD_LIBRARY_PATH가 내보내졌고 해당 변수를 에코하고 모든 라이브러리가 내 응용 프로그램과 동일한 CPU로 컴파일 될 때 경로를 볼 수 있습니다. – knp
이진 SUID (set UID) 프로그램입니까? 아니면 루트로 실행하고 있습니까? 솔라리스에서 운영되는 것 같습니다. LD_LIBRARY_PATH는 SUID 프로그램에서 작동하지 않습니다. –