centos好像已经停止服务,因此使用ubuntu可能会更好,在这种前提下本文可能记录问题的意义更多
一、cmake安装
用sh文件安装后好像找不到cmake,因此用安装包进行安装
Centos7 安装CMake_centos7安装cmake-CSDN博客
注意安装版本应该在3.10以上
二、gcc安装及更新
这个真的花了好长时间
首先可以用
yum install gcc g--g++
进行低版本下载,然后下载较高版本,此处选择gcc-5.4.0
如果直接想跳过较高版本进行最新版本编译可能会碰上这个问题:
A compiler with support for C++11 language features is required.
较高版本下载参考文章:
Linux 下编译安装 gcc 5.4.0_linux安装gcc5.4-CSDN博客
大概流程是:
Ⅰ.下载安装包及解压
问题1:下载时wget拒绝连接
参考文章:
问题2:./configure: line 1878: config.log: Permission denied
这种一般是忘记su root了
Ⅱ.下载依赖
cd gcc-5.4.0
./contrib/download_prerequisites
Ⅲ.配置
Ⅳ.make&make install
make和make install分开执行
问题1:make[1]: *** [stage1-bubble] 错误 2
没有下载依赖,重新下载一下
然后较高版本gcc安装和5.4.0版本基本一致
但是会遇到一些新的问题
问题1:c++:internal complier error:已杀死(program cc1plus)
实际是内存和交换区不够用,可以建立临时交换区
参考文章:Linux增大Swap分区,增加虚拟内存,以解决内存不足等问题_增大swapfile能缓解内存不足吗-CSDN博客
也可以直接在vm的虚拟机管理那里给虚拟机加内核和内存,我加到4核4G就没有出现这个问题了
问题2:collect2: 致命错误:ld 以信号 9 [已杀死] 退出。
和上面本质是同一个问题,内存不够,解决方法也是一样的
问题3:安装完成之后使用g++ --version发现版本号还在5.4.0
要更改路径,写入./bashrc
export PATH=/your/new/gcc/path/bin:$PATH
export LD_LIBRARY_PATH=/your/new/gcc/path/lib64:$LD_LIBRARY_PATH
export CC=/your/new/gcc/path/bin/gcc
export CXX=/your/new/gcc/path/bin/g++
/your/new/gcc/path为gcc配置路径,如gcc11.3.0默认为/usr/local/gcc-11.3.0
三、构建Libevent
问题:fatal: unable to access 'https://github.com/libevent/libevent/': Failed connect to github.com:443; Connection refused
解决方式参考:
四、构建googletest
问题1:cmake: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by cmake)
gcc升级过程中软链接没有更新,解决方式参考:
解决类似运行报错: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found 的问题-CSDN博客
问题2:Could not find a package configuration file provided by "benchmark" with any of the following names:
其实是构建miniob时的问题,但是应该在这个版块解决,应该先下载benchmark再下载googletest
参考文章:
c++性能测试工具:google benchmark入门(一) - apocelipes - 博客园 (cnblogs.com)
五、构建Jsoncpp
六、构建miniob
问题1.见四、构建googletest
问题2:No source or binary directory provided
gcc版本不符,注意gcc的环境配置切换到最高版本