2013-04-28 226 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:Library not loaded:/usr/local/lib/libjpeg.9.dylib

Refer enced從:/Users/hanxu/Documents/./a.out

原因:沒有發現圖像

跟蹤/ BPT陷阱:5

我已指定的庫中搜索路徑jpeg_lib/include /,爲什麼程序仍在/ usr/local/lib中搜索?

+0

「'/ Users/hanxu/Documents /./ a.out'中的那個點對我來說看起來很奇怪。 – 2013-04-28 07:51:54

+0

@MichaelDautermann,我剛剛複製了命令行結果。我使用「./a.out」來運行我的程序。這對我來說也很奇怪。 – HanXu 2013-04-28 08:00:44

+0

是你正在創建一個Xcode項目的命令行工具,還是通過一個Makefile? – 2013-04-28 08:03:41

回答

0

你應該包括其中libjpeg.9.dylib生活LD_LIBRARY_PATH,這是需要在運行時找到該庫的目錄:

export LD_LIBRARY_PATH=/path/to/libjpeg

+8

'LD_LIBRARY_PATH'是Linux(UNIX),在OSX下是'DYLD_LIBRARY_PATH'。 – trojanfoe 2013-05-20 08:37:29

0

你檢查權限您jpeg_lib?如果你安裝了以root身份運行的任何東西,然後像你自己一樣跑這可能發生了。

我剛剛以root用戶的身份安裝portmanteau後發現運行GD圖形時出現的錯誤消息,發現libjpeg.9.dylib所在的/ usr/local/lib目錄擁有權限700.更改到755(就像/ usr/local中的所有其他目錄一樣)解決了這個問題。