我使用SASL创建了Netbeans工作环境。示例代码可以构建,也可以从Netbeans正常运行。但是当我尝试从终端运行我的exe时,它无法工作。错误如下所示:
./ cppapplication_1:加载共享库时出错: libanonymous.so.2:无法打开共享对象文件:没有这样的文件或 目录
我尝试使用以下命令设置PATH:
export PATH = / usr / lib64 / sasl2 /:$ PATH
我仍然得到同样的错误。我还需要做额外的事吗?
答案 0 :(得分:1)
您也可以试试这个。
ldd <name of executable>
您将看到从属库及其预期路径。查看lib是否存在于可执行文件期望的路径中。
答案 1 :(得分:1)
您需要将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 的回答我看到有问题的lib位于/usr/lib64/sasl2/
下。
所以你可能希望设置LD_LOAD_LIBRAY
路径:
export LD_LOAD_LIBRARY=$LD_LOAD_LIBRARY:/usr/lib64/sasl2/
更新2
这需要在同一个shell中完成,然后执行需要库的程序(cppapplication_1
)。
cd <dir for cppapplication_1>; export LD_LOAD_LIBRARY=$LD_LOAD_LIBRARY:/usr/lib64/sasl2/; ./cppapplication_1