前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >解决Boost库链接出错问题

解决Boost库链接出错问题

作者头像
昊楠Hacking
发布于 2018-03-07 08:39:12
发布于 2018-03-07 08:39:12
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

安装完最新的Boost库

官方说明中有一句话:

Finally,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ./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来运行

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-05-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux上安装Boost C++ Libraries
Boost C++ 库(Libraries)是一组扩充C++功能性的经过同行评审(Peer-reviewed)且开放源代码程序库。大多数的函数为了能够以开放源代码、封闭项目的方式运作,而授权于Boost软件授权条款(Boost Software License)之下。许多Boost的开发人员是来自C++标准委员会,而部份的Boost库成为C++的TR1标准之一。[1]
大江小浪
2018/07/25
2.3K0
安装glog和gflags
1.下载 git clone https://github.com/google/glog 2.配置 sudo apt-get install autoconf automake libtool 3.编译&安装 进入源码根目录 ./autogen.sh ./configure make -j 24 sudo make install 4.结果 make[1]: Entering directory '/home/xxx/Downloads/glog' /bin/mkdir -p '/usr/local/l
昊楠Hacking
2018/03/08
5.3K1
Linux环境下静态库和动态库的实现
在软件开发中,库是非常重要的组成部分。它们包含了一组可复用的函数和代码片段,用于提高开发效率和代码质量。在Linux系统中,库分为静态库和动态库两种。本文将介绍它们的实现方式,结合C语言代码进行说明,并详细解释其原理和使用方法。
ahao
2025/01/05
921
[操作系统] 动静态库制作与原理
库本质上是一组可执行代码的二进制形式,可以被操作系统加载到内存中执行。它的存在意义在于:
DevKevin
2025/03/07
1770
关于libtorrent库的安装
前言: 前段时间由于工作需要,在Python的web开发框架Django中使用到了libtorrent这个C++扩展库来解析链接或种子数据.特了解和尝试了libtorrent库的安装.一般情况下,为了方便Python解释器版本和依赖库的管理,python项目都是工作在虚拟环境之下.在此情况下,便出现了一个挺严重的问题:C++编写的libtorrent库如何引入到虚拟环境之中.
py3study
2020/01/02
2.6K0
Linux gcc链接动态库出错:LIBRARY_PATH和LD_LIBRARY_PATH的区别
昨天在自己的CentOs7.1上写makefile的时候,发现在一个C程序在编译并链接一个已生成好的lib动态库的时候出错。链接命令大概是这样的:
typecodes
2024/03/29
9230
Linux gcc链接动态库出错:LIBRARY_PATH和LD_LIBRARY_PATH的区别
linux编译so库「建议收藏」
以一个例子来说明。 这里有三个so_test.h, test_a.c, test_b.c
全栈程序员站长
2022/09/07
3.5K0
静态库(.a)与动态库(.so)的简明介绍
gcc有很多关于静态库,动态库的选项如-l,-L,-fPIC,-shared -Wl,-soname,看着很复杂容易混淆,其实静态库和动态库都是应需而生,只要有了一个线索都很容易理解。
racaljk
2018/10/10
1.6K0
Linux动态链接库.so文件的创建与使用
1. 介绍         使用GNU的工具我们如何在Linux下创建自己的程序函数库?一个“程序函数库”简单的说就是一个文件包含了一些编译好的代码和数据,这些编译好的代码和数据可以在事后供其他的程
阳光岛主
2019/02/19
9.4K0
Linux下Boot的编译和使用
其实Linux下的编译安装过程和Window下的是差不多的(Windows下Boot的编译和使用) 首先在官网下载安装包进行解压,然后执行bootstrap.sh脚本。
卡尔曼和玻尔兹曼谁曼
2019/01/22
1.7K0
VS编译BOOST,bjam参数详解
Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,其成员已近2000人。 Boost库为我们带来了最新、最酷、最实用的技术,是不折不扣的“准”标准库。
用户3519280
2023/07/08
5370
centos6.x升级protobuf操作流程.
1.首先卸载protobuf,使用命令如下:  sudo yum remove protobuf 2.下载protobuf源,依据自己的需要下载:  2.1下载地址:https://github.co
Gxjun
2018/03/27
3.1K0
C语言 | 什么是静态链接库和动态链接库?
今天分享的是静态链接库和动态链接库的相关知识,并且自己动手写一个简单的静态函数库和动态函数库,来体验这个流程。
飞哥
2020/08/11
4.7K0
C语言 | 什么是静态链接库和动态链接库?
Linux gcc编译生成静态库和共享动态库的过程
这篇文章主要通过实例演示在Linux下如何使用gcc分别编译生成静态库和动态库文件以及其它程序如何使用这个生成的静态库和动态库。
typecodes
2024/03/29
7240
Linux gcc编译生成静态库和共享动态库的过程
Linux动态库管理详解:增加动态库目录和实用技巧
在Linux操作系统中,动态库是一种特殊的二进制文件,它包含了在多个应用程序中可共享的代码和数据。然而,对于开发者和系统管理员来说,管理这些动态库可能并不是一件简单的事。本文将深入探讨Linux动态库的管理,包括如何增加动态库目录,以及一些与动态库相关的实用技巧。
运维开发王义杰
2023/09/09
1.9K0
Linux动态库管理详解:增加动态库目录和实用技巧
CentOS7.8下编译muduo库找不到Boost库报错的解决方法
很早之前在CentOS7下编译安装过陈硕的muduo库并且成功运行示例程序muduo-tutorial,但是今天从github上面下载muduo源代码确报错了,提示Boost库找不到,但是我明明安装过Boost1.69.0的 陈硕老师的Github为:https://github.com/chenshuo
ccf19881030
2020/08/10
1.9K0
【C++】开源:Boost库常用组件配置使用
项目Github地址:https://github.com/boostorg/boost
DevFrank
2024/07/24
7250
linux 动态链接库查找方法;查找动态链接库位置; LIBRARY_PATH 和 LD_LIBRARY_PATH 的区别;LD_LIBRARY_PATH and LD_RUN_PATH的区别;MAC
今天配置之前项目的时候,发现有些动态链接库变了,想看看现在应用在使用哪些动态链接库的时候,进一步查了点资料;
西湖醋鱼
2020/12/30
2K0
关于C ++:Cmake无法找到Boost库
boostc++cmake Cmake cannot find Boost libraries 我是Cmake的新手,并增强了C ++中的库。 我正在做一个需要boost和Cmake的项目。 我正在使用Cmake版本2.8.11,MS Visual Studio 2013和Boost 1.54.0。 当我尝试从Cmake配置时,出现以下错误:
用户3519280
2023/07/08
1.2K0
Ubuntu20.10中安装boost 1.75库
首先上Boost官网下载Boost 1.75的源代码boost_1_75_0.tar.gz,如下图所示:
ccf19881030
2021/03/22
5K0
Ubuntu20.10中安装boost 1.75库
推荐阅读
相关推荐
Linux上安装Boost C++ Libraries
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文