linux bitcoin-qt程序运行时 缺少 libboost.so 动态库

当运行bitcoin-qt程序时,由于系统找不到libboost.so库导致无法启动。解决方法是将依赖库路径添加到系统环境变量中。通过编辑环境变量文件并保存更改,然后执行相应命令,确保程序能够找到必要的库。

这是因为该程序在系统变量的路径下未找到自己的依赖库,所以就启动不了。
执行将缺省的依赖库补上,能让程序搜索的到就可以了。

bitcoin可执行程序的运行错误截图

# 执行打开后发生的错误提示
./bitcoin-qt

not find shared object file

/home/cly/project/bitcoin/ShanRen_bitcoin-0.12/bitcoin-0.12/src/qt/.libs/lt-bitcoin-qt: error while loading shared libraries: libboost_filesystem.so.1.65.1: cannot open shared 
<think> 首先,用户的问题是关于如何安装libboost运行库。用户提到他们遇到了运行缺少动态库的错误,比如: ``` error while loading shared libraries: libboost_system.so.1.64.0: cannot open shared object file: No such file or directory ``` 或 ``` error while loading shared libraries: libboost_filesystem.so.1.65.1: cannot open shared object file: No such file or directory ``` 用户明确说“我想查找libboost运行库的安装方法”,所以我需要提供安装libboost运行库的步骤。 关键点是“运行库”,这意味着用户需要的是共享库文件(.so文件),而不是整个Boost开发库。通常,安装运行库是通过包管理器安装预编译的包。 用户使用的是Linux系统,根据引用[2]中的路径(/home/cly/project/bitcoin/ShanRen_bitcoin-0.12/bitcoin-0.12/src/qt/.libs/lt-bitcoin-qt),看起来是Ubuntu或类似的Debian-based系统。 在Linux上,安装运行库的常见方法是使用包管理器。例如,在Ubuntu/Debian上,可以使用apt-get;在Fedora上,使用dnf或yum。 用户的具体错误提到了libboost_system.so.1.64.0和libboost_filesystem.so.1.65.1,所以我需要提供安装这些特定版本库的方法。 Boost库的包名通常类似libboost-<component>-dev,但运行库通常是libboost-<component> 包的一部分。对于运行,我们应该安装包含共享库的包。 在Debian/Ubuntu上,运行库包名通常是libboost-<component>1.XX.0(取决于版本)。例如,对于libboost_system.so.1.64.0,包名可能是libboost-system1.64.0。 用户引用了两个不同版本(1.64.0和1.65.1),所以我应该建议安装对应版本的运行库。 步骤概述: 1. 确定系统(如Ubuntu)。 2. 使用包管理器安装特定版本的Boost运行库。 3. 如果包不存在,考虑从源码编译或使用其他方法。 由于用户可能使用的是Debian-based系统,我将以Ubuntu为例。 安装命令示例: - 对于libboost_system.so.1.64.0:sudo apt-get install libboost-system1.64.0 - 类似地,对于libboost_filesystem.so.1.65.1:sudo apt-get install libboost-filesystem1.65.1 但版本号可能因系统而异。用户需要知道自己的系统版本和可用的Boost版本。 如果包管理器中没有确切版本,可能需要添加PPA或从源码编译。 但首先,建议用户使用包管理器搜索可用包: - apt-cache search libboost-system - 或 sudo apt update && sudo apt install libboost-system-dev(但-dev包包含开发文件,运行可能需要共享库包) 在Ubuntu上,运行库通常包含在libboost-<component>包中。例如: - libboost-system1.65.1 - libboost-filesystem1.65.1 用户需要安装缺失的特定组件。 通用步骤: 1. 更新包列表:sudo apt update 2. 搜索库:apt-cache search libboost | grep system(或 filesystem) 3. 安装对应的运行包 4. 设置库路径(如果需要),但通常安装后ldconfig会自动处理 如果库已安装但路径不对,可以运行sudo ldconfig 现在,构建回答: - 结构清晰:逐步解决问题 - 使用中文 - 添加引用标识:引用[1]和[2]在用户输入中提供了背景,所以回答末尾添加引用标识 - 生成相关问题 回答结构: 1. 解释问题原因 2. 提供安装步骤 3. 给出命令示例 4. 建议检查版本 5. 处理常见问题 相关问题生成: - 如何检查Boost库的版本? - 如何添加PPA安装特定版本的Boost? - 如何从源码编译Boost库? - 如何设置LD_LIBRARY_PATH来解决库路径问题? 确保回答真实可靠:基于Linux包管理知识。 </think> ### libboost运行库的安装方法 当您在Linux系统(如Ubuntu或Debian)运行程序遇到类似以下错误: ``` error while loading shared libraries: libboost_system.so.1.64.0: cannot open shared object file: No such file or directory ``` 或 ``` error while loading shared libraries: libboost_filesystem.so.1.65.1: cannot open shared object file: No such file or directory ``` 这表示系统缺少Boost动态库的运行组件。编译可能已通过,但运行可执行文件无法找到所需的共享库文件(`.so`文件)。以下是完整的解决方法: #### 步骤1: 确认系统环境 - 检查您的Linux发行版(推荐使用Ubuntu/Debian系): ```bash lsb_release -a # 查看系统版本 ``` - 确保包管理器已更新: ```bash sudo apt update # 对于Debian/Ubuntu ``` 如果是Fedora/CentOS,使用`sudo dnf update`或`sudo yum update`[^1]。 #### 步骤2: 安装特定版本的Boost运行- **原因**:Boost库分为开发包(包含头文件和静态库)和运行包(包含动态库)。运行错误需安装后者。 - **通用命令格式**: ```bash sudo apt install libboost-<组件名><版本号> # Debian/Ubuntu ``` 或 ```bash sudo dnf install boost-<组件名><版本号> # Fedora ``` - **根据您的错误消息安装**: - 如果缺少`libboost_system.so.1.64.0`: ```bash sudo apt install libboost-system1.64.0 # 安装系统组件运行库 ``` - 如果缺少`libboost_filesystem.so.1.65.1`: ```bash sudo apt install libboost-filesystem1.65.1 # 安装文件系统组件运行库 ``` - 如果提示版本不匹配,搜索可用包: ```bash apt-cache search libboost | grep filesystem # 搜索文件系统相关包 apt-cache search libboost | grep system # 搜索系统组件相关包 ``` #### 步骤3: 验证安装并更新库缓存 - 安装后,重新加载动态链接器缓存: ```bash sudo ldconfig # 确保系统识别新库 ``` - 检查库文件是否已存在: ```bash ldconfig -p | grep libboost_ # 列出所有已安装的Boost库 ``` 如果输出中包含缺失的库(如`libboost_system.so.1.64.0`),表示安装成功。 #### 步骤4: 处理常见问题 - **问题1:包管理器找不到指定版本** - 原因:系统仓库可能不提供特定版本(如1.64.0或1.65.1)。 - 解决: - 添加第三方PPA(Ubuntu): ```bash sudo add-apt-repository ppa:mhier/libboost-latest # 添加Boost更新PPA sudo apt update sudo apt install libboost-system-dev # 安装最新版开发包(会包含运行库) ``` - 或从源码编译: ```bash wget https://boostorg.jfrog.io/artifactory/main/release/1.65.1/source/boost_1_65_1.tar.gz tar -xzvf boost_1_65_1.tar.gz cd boost_1_65_1 ./bootstrap.sh ./b2 --with-system --with-filesystem # 仅编译所需组件 sudo ./b2 install # 安装到系统目录 ``` - **问题2:库路径未正确配置** - 如果库已安装但程序仍报错,临设置`LD_LIBRARY_PATH`: ```bash export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH # 添加库路径 ./your_program # 运行程序 ``` 永久生效需在`~/.bashrc`中添加该行。 #### 注意事项 - **优先使用包管理器**:它能自动处理依赖,避免冲突。 - **版本匹配**:确保安装的库版本与程序编译使用的版本一致(通过错误消息确定)。 - **最小化安装**:如果只需运行库,避免安装`-dev`包(包含开发文件),以节省空间[^1]。 通过以上步骤,运行库问题通常可解决。如果编译使用了特定路径,检查程序是否链接到正确库(使用`ldd your_program`命令)[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值