解决Boost库链接出错问题

安装完最新的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来运行

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏王大锤

iOS创建子工程

34410
来自专栏一棹烟波

文件操作常用函数

文件重命名: rename(inFilePath.c_str(), outFilePath.c_str()) 文件移动(剪切): MoveFileA(inFil...

3535
来自专栏BinarySec

Linux如何搜索动态库

在linux下安装一些程序,或者在做pwnable的时候经常出现没有找到动态库的情况。

1043
来自专栏技术博文

php mail函数发送html邮件不解析,linux+postfix

今天想通过php发送邮件, 根据手册描述,发送html邮件需要指定header头 <?php $header="MIME-Version: 1.0\r\n"; ...

3386
来自专栏静默虚空的博客

Webpack 开发工具与模块热替换

Webpack 开发工具与模块热替换 ​⚠ 注意: 永远不要在生产环境中使用这些工具,永远不要。 devtool 当 JavaScript 异常抛出时,你常...

1836
来自专栏逸鹏说道

★Kali信息收集~4.DNS系列

★.1host:DNS信息 参数: ? 一般情况下,host查找的是A,AAAA,和MX的记录 ? 案例: DNS服务器查询 host -t ns 域名 ? ...

2818
来自专栏乐百川的学习频道

Spring学习笔记 Spring Roo 简介

一直以来,Java/Spring开发被认为是笨重的代表,无法快速生成项目原型和骨架。所以,Spring推出了Spring Roo这个项目,帮助我们快速生成项目原...

2297
来自专栏coding for love

在线商城项目09-基于express框架的server端搭建

在本地项目目录加入.gitignore文件,可以直接copy six-tao项目的该文件。

421
来自专栏前端人人

React多页面应用4(webpack自动化生成多入口页面)

本教程总共7篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1.React多页面应用1(webpack开发环境搭建,包...

5265
来自专栏零基础使用Django2.0.1打造在线教育网站

零基础使用Django2.0.1打造在线教育网站(二十四):全局页面配置

努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

1123

扫码关注云+社区