gpt4 book ai didi

快速解决boost库链接出错的问题(分享)

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章快速解决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的值 。

这样才能正确识别动态库 。

以上这篇快速解决boost库链接出错的问题(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

最后此篇关于快速解决boost库链接出错的问题(分享)的文章就讲到这里了,如果你想了解更多关于快速解决boost库链接出错的问题(分享)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com