1

这是我输入的命令:

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

原因:找不到图片

跟踪/BPT 陷阱:5

我已经指定了 jpeg_lib/include/ 的库搜索路径,为什么程序仍然在 /usr/local/lib 搜索?

4

2 回答 2

0

您是否检查过 jpeg_lib 的权限?如果您安装了以 root 身份运行的任何内容,然后以您自己的身份运行,这可能已经发生。

在以 root 身份安装 portmanteau 后,我从 Perl cgi 运行 GD 图形时遇到了相同的错误消息,发现我的 libjpeg.9.dylib 所在的 /usr/local/lib 目录的权限为 700。更改为 755(如/usr/local 中的所有其他目录)解决了这个问题。

于 2014-05-06T22:25:57.633 回答
0

您应该包含所在的目录libjpeg.9.dylibLD_LIBRARY_PATH这是在运行时定位库所必需的:

export LD_LIBRARY_PATH=/path/to/libjpeg

于 2013-05-20T08:32:59.850 回答