我使用 SASL 制作了 Netbeans 工作环境。示例代码得到构建,它也可以从 Netbeans 正常运行。但是当我尝试从终端运行我的 exe 时,它不起作用。错误如下:
./cppapplication_1:加载共享库时出错:libanonymous.so.2:无法打开共享对象文件:没有这样的文件或目录
我尝试使用以下命令设置 PATH :
导出 PATH=/usr/lib64/sasl2/:$PATH
我仍然遇到同样的错误。我需要额外做些什么吗?
你也可以试试这个。
ldd <name of executable>
您将看到依赖库及其预期路径。查看 lib 是否存在于可执行文件所期望的路径中。
您需要将路径添加libanonymous
到环境变量LD_LOAD_LIBRARY
。
更新:
为此:
find / -name "libanonymous.so.2"
或通过locate libanonymous.so.2
export LD_LOAD_LIBRARY=$LD_LOAD_LIBRARY:<path to lib>
更新1:
从您对Anon的回答的评论中,我看到有问题的库位于/usr/lib64/sasl2/
.
所以你可能想像这样设置LD_LOAD_LIBRAY
路径:
export LD_LOAD_LIBRARY=$LD_LOAD_LIBRARY:/usr/lib64/sasl2/
更新 2
这需要在同一个 shell 中完成,该 shell 稍后会执行需要库 ( cppapplication_1
) 的程序。
cd <dir for cppapplication_1>; export LD_LOAD_LIBRARY=$LD_LOAD_LIBRARY:/usr/lib64/sasl2/; ./cppapplication_1