2013-04-28 3 views
1
여기

내가 입력 한 명령입니다 :왜 dylib를로드하지 못합니까?

clang++ -Iboost -Ijpeg_lib/include/ -Ljpeg_lib/lib/ -ljpeg.9 mandelbrot.cpp 

디렉토리 구조는 다음과 같다 :

mandelbrot.cpp 
/boost 
/jpeg_lib/lib/ 
    libjpeg.9.dylib 
/jpeg_lib/include/ 

컴파일이 성공,하지만 난 이진 파일을 실행할 때 오류가 발생합니다

dyld : 라이브러리가로드되지 않음 : /usr/local/lib/libjpeg.9.dylib

참조 enced에서 : /Users/hanxu/Documents/./a.out

이유 : 이미지를 찾을 수없는

추적/BPT 트랩 : 5

나는 jpeg_lib하는 경로를 검색 라이브러리를 지정/include /, 프로그램이/usr/local/lib에서 여전히 검색하는 이유는 무엇입니까?

당신은 런타임에 라이브러리를 찾을 필요 LD_LIBRARY_PATHlibjpeg.9.dylib 삶, 디렉토리 포함해야
+0

"/ Users/hanxu/Documents /./ a.out'의 점은 정말 이상하게 보입니다. –

+0

@MichaelDautermann, 방금 명령 줄 결과를 복사했습니다. 내 프로그램을 실행하기 위해 "./a.out"을 사용합니다. 이상하게도 나에게 이상하다. – HanXu

+0

은 Xcode 프로젝트를 빌드하는 커맨드 라인 도구인가, 아니면 Makefile을 통한 것인가? –

답변

0

:

export LD_LIBRARY_PATH=/path/to/libjpeg

+8

'LD_LIBRARY_PATH'는 리눅스 (UNIX)이고, OSX에서는'DYLD_LIBRARY_PATH'이다. – trojanfoe

0

당신이 당신의 jpeg_lib에 대한 사용 권한을 확인 했를? 당신이 무엇이든지 설치했다면 당신은 루트로서 실행하고 나서 스스로 일어 났을 수도 있습니다.

portmanteau를 root로 설치 한 후 Perl cgi에서 GD 그래픽을 실행하는 것과 동일한 오류 메시지가 표시되었으며 내 libjpeg.9.dylib가있는/usr/local/lib 디렉토리에 권한 700이 있다는 것을 알았습니다./usr/local의 다른 모든 디렉토리와 마찬가지로 755로 설정하면 문제가 해결됩니다.

관련 문제