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

 更新时间:2017年05月18日 08:04:02   投稿:jingxian  
下面小编就为大家带来一篇快速解决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库链接出错的问题(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C语言之system函数案例详解

    C语言之system函数案例详解

    这篇文章主要介绍了C语言之system函数案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • Linux系统下C语言中的标准IO总结

    Linux系统下C语言中的标准IO总结

    最近用到了C语言的标准IO库,由于对其中的一些细节不是非常清楚,导致了许多Bug,花了好长时间来调试,所以在此做个笔记,这篇文章主要给大家介绍了关于Linux系统下C语言中标准IO的相关资料,需要的朋友可以参考下
    2024-01-01
  • C++深入探究二阶构造模式的原理与使用

    C++深入探究二阶构造模式的原理与使用

    C++中经常会因为调用系统资源失败导致出现BUG,所以在类调用构造函数需要分配系统资源时会出现BUG,从而导致类对象虽然被创建,但是只是个半成品,为了避免这种情况需要使用二阶构造模式
    2022-04-04
  • C语言实现简单计算器功能(1)

    C语言实现简单计算器功能(1)

    这篇文章主要为大家详细介绍了C语言实现简单计算器功能的第一部分,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C++中的volatile关键字及其作用

    C++中的volatile关键字及其作用

    本文介绍了C++中的volatile关键字,它用于标识变量可能被意外修改,以及编译器不应进行优化。本文通过具体的代码示例,阐述了volatile关键字的作用和使用方法,帮助读者更好地了解该关键字在C++语言中的应用场景和实现原理
    2023-04-04
  • C/C++读写注册表中二进制数据(代码示例)

    C/C++读写注册表中二进制数据(代码示例)

    这篇文章主要介绍了使用Windows API 函数中的RegOpenKeyEx()函数和RegSetValueEx()函数来实现对注册表某项写入二进制键值,需要的朋友可以参考下
    2020-02-02
  • c++运算符重载基础知识详解

    c++运算符重载基础知识详解

    运算符重载是一种形式的C++多态。运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义
    2014-03-03
  • 在iOS中给视频添加滤镜的方法示例

    在iOS中给视频添加滤镜的方法示例

    这篇文章主要介绍了在iOS中给视频添加滤镜的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 一篇文章弄懂C++左值引用和右值引用

    一篇文章弄懂C++左值引用和右值引用

    左值(lvalue)和右值(rvalue)是 c/c++ 中一个比较晦涩基础的概念,这篇文章主要给大家介绍了关于如何通过一篇文章弄懂C++左值引用和右值引用的相关资料,需要的朋友可以参考下
    2021-07-07
  • C语言中scanf与scanf_s函数的使用详解

    C语言中scanf与scanf_s函数的使用详解

    本文主要介绍了C语言中scanf与scanf_s函数的使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10

最新评论