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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1549492.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

以太网交换安全:端口隔离

一、端口隔离 以太交换网络中为了实现报文之间的二层广播域的隔离,用户通常将不同的端口加人不同的 VLAN大型网络中,业务需求种类繁多,只通过 VLAN实现报文的二层隔离,会浪费有限的VLAN资源。而采用端口隔离功能,则可…

用于探索和测试API的开源IDE工具-Bruno

1、前言 在进行软件开发与测试过程中,无论是开发人员还是测试人员,都会或多或少地进行接口调试与接口测试。尤其针对那种测试流程规范性很高的项目,测试人员进行接口测试是不可或缺的一部分。而这其中,大多数都会使用 Postman 作…

3种解决Docker容器中配置运行环境的方法

1. dockerfile用于通过脚本生成镜像 2.进入docker容器后,配置环境完,导出容器快照为镜像,拷贝到另一个主机,再进行加载; 3.在本地将依赖库等需要的文件按照目录整理好,映射到docker中。 1. dockerfile用于…

6.8方框滤波

基本概念 方框滤波(Box Filter)是一种基本的图像处理技术,用于对图像进行平滑处理或模糊效果。它通过在图像上应用一个固定大小的方框核(通常是矩形),计算该区域内像素值的平均值来替换中心像素的值。这种…

多模态大模型学习(一)

参考:https://www.bilibili.com/video/BV1kT411o7a6?p2&spm_id_frompageDriver&vd_source156234c72054035c149dcb072202e6be 余弦相似度,让正样本内积趋近于1,负样本趋近于-1。度量学习。N特别大时,负样本远大于正样本&…

HTML基础用法介绍二

目录: 列表 无序列表有序列表定义列表 表格 表格单元格合并 input标签 属性值text和password的使用 输入框中占位文本的使用 属性值radio的使用属性值checkbox的使用属性值file的使用 下拉菜单 文本域 label标签 字符实体 🚘正片开始 无序列表 …

vLLM (6) - Scheduler BlockSpaceManager

系列文章目录 vLLM (1) - Qwen2推理&部署 vLLM (2) - 架构总览 vLLM (3) - Sequence & SequenceGroup vLLM (4) - LLMEngine上篇 vLLM (5) - LLMEngine下篇 vLLM (6) - Scheduler & BlockSpaceManager 文章目录 系列文章目录前言一、Scheduler1.概述2.Scheduler._…

区块链可投会议CCF C--FC 2025 截止10.8 附录用率

Conference:Financial Cryptography and Data Security (FC) CCF level:CCF C Categories:network and information security Year:2025 Conference time:14–18 April 2025, Miyakojima, Japan 录用率&#xff1…

Elasticsearch学习笔记(1)

初识 Elasticsearch 认识和安装 Elasticsearch 是由 Elastic 公司开发的一套强大的搜索引擎技术,属于 Elastic 技术栈的一部分。完整的技术栈包括: Elasticsearch:用于数据存储、计算和搜索。Logstash/Beats:用于数据收集。Kib…

【教学类-18-04】20240508《蒙德里安“黑白格子画” 七款图案挑选》

背景需求 最近有2位客户买了蒙德里安黑白格子画的素材,其中一位问是否是1000张。 【教学类-18-03】20240508《蒙德里安“红黄蓝黑格子画”-A4横版》(大小格子)_processing简单图形画蒙德里安-CSDN博客文章浏览阅读1.1k次,点赞35次…

Python自动收发邮件的详细步骤与使用方法?

Python自动收发邮件教程?Python怎么实现收发邮件? Python作为一种强大的编程语言,提供了丰富的库和工具,使得自动收发邮件变得简单而高效。AokSend将详细介绍如何使用Python自动收发邮件,帮助读者掌握这一实用技能。 …

测试开发面试题大全(含答案+文档)

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 某基金管理公司线下测试开发面试题总结。 测开题目如下 可以尝试自己先写,写完之后再去看参考解法哦 ~ 1、编写一段代码,把 list 的数平…

安装 Nacos 启动报错 java.lang.IllegalArgumentException: db.num is null

java.io.IOException: java.lang.IllegalArgumentException: db.num is nullat com.alibaba.nacos.config.server.service.datasource.ExternalDataSourceServiceImpl.reload(ExternalDataSourceServiceImpl.java:130)解决办法: 编辑 startup.cmd 文件 找到 set MO…

【Python】Pythonic Data Structures and Algorithms:深入浅出数据结构与算法的 Python 实现

Pythonic Data Structures and Algorithms 是一个开源项目,汇集了各种经典数据结构和算法的 Python 实现。该项目旨在为开发者提供丰富的学习资源,帮助他们通过 Python 代码理解和掌握数据结构与算法的核心原理和应用。项目中的算法涵盖了排序、搜索、图…

添加vscode插件C/C++ snippets,快速生成LVGL .c/.h文件模版

文章目录 一、安装插件二、在安装目录下添加c.json和cpp.json文件①在 C:/Users/yourname/AppData/Roaming/Code/User/snippets/ 目录下创建 c.json 并填入如下内容:②在 C:/Users/yourname/AppData/Roaming/Code/User/snippets/ 目录下创建 cpp.json 并填入如下内容…

一文上手SpringSecurity【七】

之前我们在测试的时候,都是使用的字符串充当用户名称和密码,本篇将其换成MySQL数据库. 一、替换为真实的MySQL 1.1 引入依赖 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</v…

QTday1代码的形式实现登录框

代码注释 main.cpp #include "widget.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);//调用应用程序类的有参构造的实例化对象Widget w;//调用自定义的有参构造实例化的对象w.show();//调用该类的父类里的成员函数…

windows系统中后台运行java程序

在windows系统中后台运行java程序&#xff0c;就是在启动java程序后&#xff0c;关闭命令行行窗口执行。 1、命令行方式 命令行方式运行java程序 启动脚本如下&#xff1a; echo off start java -jar app.jar exit启动后的结果如下 这种方式下&#xff0c;会马上启动一个命…

vue3 实现文本内容超过N行折叠并显示“...展开”组件

1. 实现效果 组件内文字样式取决与外侧定义 组件大小发生变化时,文本仍可以省略到指定行数 文本不超过时, 无展开,收起按钮 传入文本发生改变后, 组件展示新的文本 2. 代码 文件名TextEllipsis.vue <template><div ref"compRef" class"wq-text-ellip…

Android性能优化相关的10个经典面试题

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 以下是一些Android性能优化面试问题&#xff0c;包括问题和参考解答&#xff1a; 1. 如何优化Android应用的启动速度&#xff1f; 答案&#…