2012-11-19 27 views
0

我使用SASL制作Netbeans工作环境。示例代码获得构建,并且它也可以从Netbeans正确运行。但是当我尝试从终端运行我的exe时,它不起作用。该错误表示如下:当从终端执行Netbeans EXE时不工作 - CentOs

./cppapplication_1:错误而载入共享库: libanonymous.so.2:无法打开共享对象文件:没有这样的文件或目录

我试着设置

出口PATH =的/ usr/lib64下/ SASL2 /:使用下面的命令的路径$ PATH

我仍然遇到同样的错误。我需要额外的东西吗?

+0

你可以尝试用/ usr/lib目录/ SASL2 – Anon

+0

@Anon我.so文件是在/ usr/lib64下只 – 2vision2

回答

1

您需要将路径libanonymous添加到环境变量LD_LOAD_LIBRARY

更新:

要做到这一点:

  1. 找到库,例如做:find/-name "libanonymous.so.2"locate libanonymous.so.2
  2. 添加路径发现,像这样:export LD_LOAD_LIBRARY=$LD_LOAD_LIBRARY:<path to lib>

更新1:

从到匿名的回答您的评论我看到有问题的lib位于/usr/lib64/sasl2/下。

所以,你可能想设置LD_LOAD_LIBRAY路径,像这样:

export LD_LOAD_LIBRARY=$LD_LOAD_LIBRARY:/usr/lib64/sasl2/ 

更新2

这需要在相同的外壳,以后再执行该程序需要的库来完成(cppapplication_1 )。

cd <dir for cppapplication_1>; export LD_LOAD_LIBRARY=$LD_LOAD_LIBRARY:/usr/lib64/sasl2/; ./cppapplication_1 
+0

我有很多这样的.so文件。那么如何添加? – 2vision2

+0

请参阅我的答案更新。 @ 2vision2 – alk

+0

我试过了,但得到的回应相同 – 2vision2

1

你也可以试试这个。

ldd <name of executable> 

您将看到相关的库及其预期路径。查看lib是否存在于可执行文件所期望的路径中。

+0

我我才拿到了低于response.linux-vdso.so.1 =>(0x00007fff53bff000 ) \t libanonymous.so.2 =>没有发现 \t libcrammd5.so.2 =>没有发现 \t libdigestmd5.so.2 =>没有发现 \t libgssapiv2.so.2 =>没有发现 \t liblogin.so 。2 =>没有发现 \t libplain.so.2 =>没有发现 \t libsasldb.so.2 =>没有发现 \t libsasl2.so.2 => /usr/lib64/libsasl2.so.2(0x00000039f6000000) 但libanonymous.so.2出现在“/usr/lib64/sasl2/libanonymous.so.2”目录下 – 2vision2