C++远端开发环境手动编译安装(centos7)
背景
直接使用yum安装,无法安装指定的版本,因为很多版本并没有在镜像仓库中,所以此处进行手动安装指定版本
使用VMWare安装centos7
准备centos镜像
可以自行搜索下载地址,阿里云的也可以
下载VmWare,社区版即可
可以自行搜索下载地址
新建虚拟机
选择镜像目录位置
设置虚拟机名称和安装路径
后续就一致下一步使用默认值即可,后续需要的时候再做调整
选择语言
磁盘配置确认
需要点进去,然后点击done确认,然后点击开始安装
设置root密码
输入密码之后,点击确认,开始安装
后续等待安装完成,然后点击reboot即可
启用网卡设备
此处主要是为了后续能够通过外部工具连接虚拟机
修改文件/etc/sysconfig/network-scripts/ifcfg-ens33中的ONBOOT=yes
重启网络服务
systemctl restart network
配置yum仓库
直接将如下内容覆盖原有的/etc/yum.repos.d/CentOS-Base.repo文件
注意:本机是X86_64并且是centos7环境
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-7 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
http://mirrors.aliyuncs.com/centos/7/os/x86_64/
http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-7 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/updates/x86_64/
http://mirrors.aliyuncs.com/centos/7/updates/x86_64/
http://mirrors.cloud.aliyuncs.com/centos/7/updates/x86_64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-7 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/extras/x86_64/
http://mirrors.aliyuncs.com/centos/7/extras/x86_64/
http://mirrors.cloud.aliyuncs.com/centos/7/extras/x86_64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/centosplus/x86_64/
http://mirrors.aliyuncs.com/centos/7/centosplus/x86_64/
http://mirrors.cloud.aliyuncs.com/centos/7/centosplus/x86_64/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#contrib - packages by Centos Users
[contrib]
name=CentOS-7 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/contrib/x86_64/
http://mirrors.aliyuncs.com/centos/7/contrib/x86_64/
http://mirrors.cloud.aliyuncs.com/centos/7/contrib/x86_64/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
清理yum缓存
yum clean all
刷新yum
yum update
安装WGET
yum install -y wget
安装GCC
新建一个目录并且进入该目录
mkdir ~/software;cd ~/software
下载gcc安装包
可以在如下地址选择需要的版本,此处选择10.5.0版本
Index of /gnu/gcc
wget https://ftp.gnu.org/gnu/gcc/gcc-10.5.0/gcc-10.5.0.tar.gz
解压gcc安装包
tar -xvf gcc-10.5.0.tar.gz
进入解压后的文件夹
cd gcc-10.5.0
下载gcc 依赖项
yum install make bzip2 curl file gcc gcc-c++ glibc-devel glibc-static libmpc-devel mpfr-devel libstdc++-devel libatomic libatomic-devel perl-ExtUtils-MakeMaker perl-Test-Simple perl-File-Temp perl-Time-HiRes perl-Path-Tiny perl-Getopt-Long perl-File-Copy-Recursive perl-Module-BuildTiny texinfo bison flex libmpc libmpfr libgmp zlib-devel
下载gcc前置依赖项
./contrib/download_prerequisites
配置gcc
./configure --prefix=/usr/local --enable-bootstrap --enable-languages=c,c++,fortran --disable-multilib --enable-shared --with-system-zlib --without-included-gettext
编译gcc
make -j$(nproc)
上图为编译完成的示例,注意:若编译过程中出现其他报错,一般是依赖项错误,可以自行根据错误信息检索解决方法
执行安装
make install
上图为安装完成的示例,注意:若过程中出现其他报错,可以自行根据错误信息检索解决方法
配置环境变量
因为是安装在/usr/local下,所以此处不需要单独配置环境变量,其他目录请自行检索配置方式
验证安装
gcc --version
安装GDB
新建一个目录并且进入该目录
前面已经创建了该目录,所以此处可以不做执行
mkdir ~/software;cd ~/software
下载gdb安装包
可以在如下地址选择需要的版本进行安装,此处选择10.1版本
https://ftp.gnu.org/gnu/gdb/
wget https://ftp.gnu.org/gnu/gdb/gdb-10.1.tar.gz
解压安装包
tar -xvf gdb-10.1.tar.gz
进入解压后的文件夹
cd gdb-10.1
下载gdb依赖项
yum install -y ncurses-devel readline-devel python-devel expat-devel
配置gdb
./configure --prefix=/usr/local --with-python --with-expat
--prefix=/usr/local
: 指定安装目录。--with-python
: 指定使用 Python 支持。--with-expat
: 指定使用 Expat 支持。
编译gdb
make -j$(nproc)
上图为编译完成的示例,注意:若编译过程中出现其他报错,一般是依赖项错误,可以自行根据错误信息检索解决方法
执行安装
make install
上图为安装完成的示例,注意:若过程中出现其他报错,可以自行根据错误信息检索解决方法
配置环境变量
因为是安装在/usr/local下,所以此处不需要单独配置环境变量,其他目录请自行检索配置方式
验证安装
gdb --version
预期能够输出如下版本信息
安装cmake
新建一个目录并且进入该目录
前面已经创建了该目录,所以此处可以不做执行
mkdir ~/software;cd ~/software
下载cmkae安装包
可以在如下地址选择需要的版本进行安装,此处选择3.21.0版本
Releases · Kitware/CMake · GitHub
解压安装包
tar -xvf cmake-3.21.0.tar.gz
进入解压后的文件夹
cd cmake-3.21.0
下载cmake依赖项
yum install -y make bzip2 curl gzip libarchive-devel perl openssl-devel
配置cmake
./bootstrap --prefix=/usr/local
/usr/local 代表安装目录
注意:若出现下述错误,说明是libstd++版本不配套,一般是链接有问题,需要重建/usr/lib64/libstdc++.so.6链接
解决ibstdc++链接问题
1、查看当前的libstd++版本,发现档期那版本较低,所以才会出现上述错误
strings /usr/lib64/libstdc++.so.6 |grep GLIBCXX
2、找到最高版本的路径
find / -name "libstdc++.so*"
3、删除/usr/lib64下现有的文件和链接
rm /usr/lib64/libstdc++.so.6;rm /usr/lib64/libstdc++.so.6.0.19
4、拷贝文件/usr/local/lib64/libstdc++.so.6.0.28到/usr/lib64/
cp /usr/local/lib64/libstdc++.so.6.0.28 /usr/lib64/
5、新建链接
ln -s /usr/lib64/libstdc++.so.6.26 /usr/lib64/libstdc++.so.6
6、重新执行配置操作,然后再继续后续步骤即可
./bootstrap --prefix=/usr/local
编译cmake
make -j$(nproc)
上图为编译完成的示例,注意:若编译过程中出现其他报错,一般是依赖项错误,可以自行根据错误信息检索解决方法
执行安装
make install
上图为安装完成的示例,注意:若过程中出现其他报错,可以自行根据错误信息检索解决方法
配置环境变量
因为是安装在/usr/local下,所以此处不需要单独配置环境变量,其他目录请自行检索配置方式
验证安装
cmake --version