无法使用.so文件安装共享库

时间:2017-06-04 03:14:38

标签: ubuntu cmake include shared-libraries .so

我无法在Ubuntu上安装this library,或者至少要编译一个.cpp链接库。我已经完成了所有Google和StackOverflow的答案。

好的,首先我运行cmake并运行make(和make install以确定)。不过,如果我运行g++ xxx.cpp -lcrb -o test,我会收到此错误:fatal error: CRNB.h: No such file or directory。该库尚未安装,因此我将libcrn.so文件复制到/usr/lib并运行sudo ldconfig以加载它。现在...

  • sudo ldconfig -n -v /usr/lib/表示已正确安装(不是在复制.so文件之前)。
  • g++ -lcrn表示已正确安装,因为返回undefined reference to 'main'而不是cannot find -lcrn(与复制.so文件前一样)
  • ldd /bin/ls没有列出库,这意味着它没有安装

无论如何,尝试编译仍然会抛出相同的错误。我也试过......

  • ...创建.conf文件并将其添加到文件夹/etc/ld.so.conf.d/
  • ...创建.so文件到/usr/lib
  • 的符号链接
  • ...也在/usr/local/lib/lib文件夹
  • 中重复所有这些解决方案
  • ...将所有这些文件夹添加到/etc/ld.so.conf路径
  • ...将LD_LIBRARY_PATH导出到.so文件的路径

还有更多类似的东西。正如你所看到的,所有这些都是一样的,所以我很清楚我失去了一些重要的东西。谁知道它可能是什么?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您需要指定" -I"标记包含目录,或将其导入您的系统。

尝试:

g++ src_name.cpp -L./your/library -lcrn -I./your/headers -o out_name -std=c++11

或者:

您可以从libcrn包含文件(" *。h")复制到" / usr / local / include /"和库到" / usr / local / lib /"如果不存在,然后:

g++ src_name.cpp -lcrn -o out_name -std=c++11