Linux编译安装boost-1_54

本文详细介绍了Boost库1.54.0版本的下载、解压、安装及环境变量配置过程,并通过一个简单的示例程序验证了安装的成功。此外还提供了两种添加环境变量的方法。

1.下载 boost-1_52  

http://sourceforge.net/projects/boost/files/boost/1.54.0/boost_1_54_0.tar.gz/download

2. 将文件解压在/usr/local/目录下

3. 进入/usr/local/boost-1_54_0/ 目录, 在terminal中输入

./bootstrap.sh

4.进入/usr/local/boost-1_54_0/ 目录,在terminal中输入

sudo ./b2

5.进入/usr/local/boost-1_54_0/ 目录,在terminal中输入

sudo ./bjam --layout=versioned--build-type=complete--toolset=gccinstall

6.添加环境变量(刚改完要重启或者注销一下来更新刚修改过的环境变量)

两种方法:

(1)修改/etc/profie文件 末尾添加

export BOOST_INCLUDE=/usr/local/include/boost-1_54

export BOOST_LIB=/usr/local/lib

(2)在/etc/profile.d/ 中新建一个shell文件boost.sh

#!/bin/sh

export BOOST_INCLUDE=/usr/local/include/boost-1_54

export BOOST_LIB=/usr/local/lib

测试:
test.cpp

#include <boost/lexical_cast.hpp>
#include <iostream>
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.12");
std::cout<<a<<std::endl;
std::cout<<b<<std::endl;
return 0;
}


编译:
g++ test.cpp -I$BOOST_INCLUDE -L$BOOST_LIB -o test./test
输出:
123
123.12

-- CMAKE_GENERATOR: Unix Makefiles -- SIZEOF_VOIDP 8 -- MySQL 5.7.26 -- Packaging as: mysql-5.7.26-Linux-x86_64 -- Local boost dir /root/boost_1_59_0 -- Found /root/boost_1_59_0/boost/version.hpp -- BOOST_VERSION_NUMBER is #define BOOST_VERSION 105900 -- BOOST_INCLUDE_DIR /root/boost_1_59_0 -- NUMA library missing or required version not available -- Found Git: /usr/bin/git -- LIBEVENT_INCLUDE_DIRS /root/mysql-5.7.26/extra/libevent/include;/root/mysql-5.7.26/extra/libevent/include -- LIBEVENT_LIBRARIES event -- Cannot find system sasl libraries. -- WITH_PROTOBUF=bundled -- protobuf version is 2.6 -- You need to set WITH_CURL. This variable needs to point to curl library. -- Creating LDAP authentication SASL client library. -- Currently LDAP SASL client authentication plug-in is build with only system installed cyrus SASL library. -- Required SASL library is missing. Skipping the LDAP SASL client authentication plugin. -- Library mysqlclient depends on OSLIBS -lpthread;m;rt;dl -- MERGE_CONVENIENCE_LIBRARIES TARGET mysqlclient -- MERGE_CONVENIENCE_LIBRARIES LIBS clientlib;dbug;strings;vio;mysys;mysys_ssl;zlib;yassl;taocrypt;dl -- MERGE_CONVENIENCE_LIBRARIES MYLIBS clientlib;dbug;strings;vio;mysys;mysys_ssl;zlib;yassl;taocrypt -- Using cmake version 3.12.1 -- Disabling -Wunused-but-set-variable warning for building NDB -- Disabling -Wstrict-aliasing warning for building NDB -- Not building NDB CMake Error at rapid/plugin/group_replication/rpcgen.cmake:93 (MESSAGE): Could not find rpcgen Call Stack (most recent call first): rapid/plugin/group_replication/CMakeLists.txt:29 (INCLUDE) -- Configuring incomplete, errors occurred! See also "/root/mysql-5.7.26/CMakeFiles/CMakeOutput.log". See also "/root/mysql-5.7.26/CMakeFiles/CMakeError.log". [root@localhost mysql-5.7.26]# 预编译报错了
最新发布
10-12
<think>我们正在解决在ARM架构的CentOS 8服务器上编译MySQL 5.7.26时,使用CMake 3.12.1编译出现的“Could not find rpcgen”错误。 根据引用[1],该错误是因为缺少rpcgen工具。rpcgen是用于生成RPC(远程过程调用)代码的工具,通常在编译某些需要RPC支持的程序时被调用。 解决方案思路: 1. 安装包含rpcgen的软件包。在CentOS 8中,rpcgen是由`libtirpc`和`libtirpc-devel`包提供的(注意:在CentOS 7中,它是由`rpcbind`包提供的,但在CentOS 8中已改变)。 2. 或者,也可以尝试安装`tirpc`相关的包。 具体步骤: 步骤1安装libtirpc-devel 在终端中执行以下命令: sudo dnf install -y libtirpc-devel 步骤2:验证rpcgen是否安装成功 安装完成后,可以通过以下命令检查rpcgen的位置: which rpcgen 或者 rpcgen --version 步骤3:重新运行CMake 安装完依赖后,重新运行CMake配置命令。 另外,参考引用[2][3]中提到的其他错误(如找不到C/C++编译器),我们也应该确保编译环境已安装。因此,可以提前安装必要的编译工具: sudo dnf install -y gcc gcc-c++ make cmake 引用[4]中提到,在CMake命令中指定boost路径也是一个常见的解决办法,但本问题中没有提到boost错误,所以先解决rpcgen问题。如果后续出现boost相关错误,可以按照引用[3][4]的方法处理,例如使用`-DDOWNLOAD_BOOST=1 -DWITH_BOOST=<path>`选项。 总结步骤: 1. 安装编译工具链和libtirpc-devel 2. 重新运行CMake配置 注意:由于是在ARM架构下,确保这些软件包在ARM架构的CentOS 8仓库中可用。 如果仍然遇到问题,可能需要检查系统环境变量,确保CMake能够找到rpcgen。通常安装后,rpcgen会被放在`/usr/bin`下,该路径默认在PATH中。 生成相关问题: 考虑到用户可能在编译MySQL时遇到其他常见错误,我们可以生成以下问题: 1. 如何解决MySQL编译过程中出现的Boost库问题? 2. 在ARM架构下编译MySQL还需要注意哪些依赖问题? 3. 如何配置CMake选项以优化MySQL的编译安装? 注意:我们的回答需要基于提供的引用信息,并尽可能给出具体步骤。 </think>### 解决MySQL 5.7.26编译中"Could not find rpcgen"错误 #### 错误原因分析 该错误是由于编译MySQL时需要RPC(远程过程调用)支持,但系统中缺少`rpcgen`工具链导致的[^1]。`rpcgen`是用于生成RPC存根代码的关键工具,在编译MySQL的网络通信组件时必不可少。 #### 解决方案(ARM架构/CentOS 8) 1. **安装rpcgen依赖包** 在终端执行: ```bash sudo dnf install libtirpc libtirpc-devel rpcgen -y ``` *说明*:在CentOS 8中,`rpcgen`由`libtirpc`套件提供,而非旧版的`rpcbind`[^1]。 2. **验证安装结果** 执行以下命令检查工具是否就位: ```bash which rpcgen && rpcgen --version ``` 正常应返回路径如`/usr/bin/rpcgen` 3. **补充编译环境** 同时安装基础编译工具链,避免后续错误[^2][^3]: ```bash sudo dnf install gcc gcc-c++ make cmake openssl-devel ncurses-devel -y ``` 4. **关键CMake参数** 重新运行CMake时添加以下参数: ```bash cmake . \ -DDOWNLOAD_BOOST=1 \ -DWITH_BOOST=/tmp/boost \ # 指定临时Boost目录 -DENABLE_DOWNLOADS=1 # 自动下载缺失依赖 ``` *注意*:Boost问题在MySQL 5.7编译中常见,此参数组合可规避[^3][^4] #### 验证步骤 ```bash # 清理旧配置 make clean rm CMakeCache.txt # 重新配置 cmake [your_params] . # 检查输出中应出现: -- Found rpcgen: /usr/bin/rpcgen -- Checking for rpcgen... found ``` #### 常见关联问题处理 - 若出现`Unsupported compiler`错误:确认gcc版本≥4.8,并执行`sudo dnf install gcc-toolset-9`[^2] - 若数据目录已存在文件导致失败:清理`datadir`路径或添加`--force`参数[^5] > 在ARM架构下编译需注意:CentOS 8的软件包命名与x86不同,建议优先使用`dnf provides */rpcgen`查找匹配包[^1]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值