这是我输入的命令:
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
引用自:/ Users / hanxu / Documents /./ a.out
原因:未找到图片
Trace / BPT trap:5
我已经指定了jpeg_lib / include /的库搜索路径,为什么程序仍在/ usr / local / lib中搜索?
答案 0 :(得分:0)
您应该在libjpeg.9.dylib
中包含LD_LIBRARY_PATH
所在的目录,这是在运行时找到库所必需的:
export LD_LIBRARY_PATH=/path/to/libjpeg
答案 1 :(得分:0)
您是否检查了jpeg_lib的权限?如果您安装了以root用户身份运行的任何内容,那么就可以自行运行。
在以root用户身份安装portmanteau之后,我从Perl cgi运行GD图形时遇到了同样的错误消息,发现我的libjpeg.9.dylib所在的/ usr / local / lib目录有权限700.更改为755(就像/ usr / local中的所有其他目录一样)解决了这个问题。