博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决Boost库链接出错问题
阅读量:5329 次
发布时间:2019-06-14

本文共 1807 字,大约阅读时间需要 6 分钟。

安装完最新的Boost库

官方说明中有一句话:

Finally,

$ ./b2 install

will leave Boost binaries in the lib/ subdirectory of your installation prefix. You will also find a copy of the Boost headers in the include/ subdirectory of the installation prefix, so you can henceforth use that directory as an #include path in place of the Boost root directory.

大部分Boost库无需动态或静态编译链接,小部分如regex   thread   coroutine之类的库在编译自己的源代码时需要加入链接提示

比如在编译使用regex的库时命令如下:

c++ -I /usr/local/include/boost/ main.cpp -o test1 -L /usr/local/lib -lboost_regex

完成后运行时:

LD_LIBRARY_PATH="/usr/local/lib" ./test1   

否则会报错:

error while loading shared libraries: libboost_regex.so.1.64.0: cannot open shared object file: No such file or directory

这个错误在stackoverflow上给的解释是:

The library cannot be found.

Libraries are by default looked for in /lib/usr/lib and the directories specified by /etc/ld.so.conf.

Usually system libraries (like boost, if you installed it via your package manager) are located in /usr/lib, but it's probably not your case.

Where are your boost libraries located on your system? Did you compile them by yourself? In this case you should tell the dynamic linker to look for your libraries in the directory they're located by using the LD_LIBRARY_PATH environment variable:

LD_LIBRARY_PATH="your/boost/directory" ./testfgci

I'd suggest you to install boost libraries using your package manager, anyway, this will make your life a lot simpler.

也就是说系统在运行程序时要先加载动态库,系统的搜寻目录在/etc/ld.so.conf或者/etc/ld.so.conf.d/*.conf中,而该目录中没有链接库所在的位置,要在该文件中手动加入目录地址或者在运行程序之前指定LD_LIBRARY_PATH的值

这样才能正确识别动态库

------------------------------------------------------------------------------------------------------------

更新:

一个更方便的方法是在IDE的environment variable中添加LD_LIBRARY_PATH=/usr/local/lib

然后运行即可,要不然只能使用terminal来运行

 

转载于:https://www.cnblogs.com/burningTheStar/p/6869581.html

你可能感兴趣的文章
分布式系统的一致性级别划分及Zookeeper一致性级别分析
查看>>
单例模式的几种实现方式及对比
查看>>
Java中synchronized关键字你知道多少
查看>>
IDEA乱码Tomcat控制台乱码输出乱码报文乱码
查看>>
如何用上新版本的 IDEA(IDEA 2019.2.2版本)
查看>>
SpringBoot自定义过滤器的两种方式及过滤器执行顺序
查看>>
Session和Cookie的用法及区别
查看>>
Javaweb设置session过期时间
查看>>
29道Zookeeper面试题超详细(附答案)
查看>>
实现如下类之间的继承关系,并编写Music类来测试这些类。
查看>>
第十二周学习记录
查看>>
Python-13-pass,del和exec
查看>>
numpy 使用详解
查看>>
html选择图片后预览,保存并上传
查看>>
Recursion递归
查看>>
《A First Course in Probability》-chaper3-条件概率和独立性-P(·|F)是概率
查看>>
学习Logistic Regression的笔记与理解(转)
查看>>
ORM(Object Relation Mapping)
查看>>
进程和线程
查看>>
有没有让你相见恨晚的(高考)教辅书?
查看>>