为什么我无法加载dylib?

问题描述:

这是我键入的命令:为什么我无法加载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

你应该包括其中libjpeg.9.dylib生活LD_LIBRARY_PATH,这是需要在运行时找到该库的目录:

export LD_LIBRARY_PATH=/path/to/libjpeg

+8

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

你检查权限您jpeg_lib?如果你安装了以root身份运行的任何东西,然后像你自己一样跑这可能发生了。

我刚刚以root用户的身份安装portmanteau后发现运行GD图形时出现的错误消息,发现libjpeg.9.dylib所在的/ usr/local/lib目录拥有权限700.更改到755(就像/ usr/local中的所有其他目录一样)解决了这个问题。