当前位置: 首页 > news >正文

CentOS 6.10 上安装 GCC 7+

好的!下面是完整步骤,帮你在 CentOS 6.10 上安装 GCC 7+ 并生成适用于 clangdcompile_commands.json


✅ 第一步:在 CentOS 6.10 编译安装 GCC 7.5

1. 安装依赖

sudo yum groupinstall "Development Tools"
sudo yum install gcc gcc-c++ gmp-devel mpfr-devel libmpc-devel

2. 下载 GCC 7.5 源码

cd /usr/local/src
sudo wget https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz
sudo tar -xzf gcc-7.5.0.tar.gz
cd gcc-7.5.0
sudo ./contrib/download_prerequisites

3. 编译 GCC 7.5(耗时较长)

sudo mkdir build && cd build
sudo ../configure --disable-multilib --enable-languages=c,c++ --prefix=/opt/gcc-7.5
sudo make -j$(nproc)
sudo make install

4. 配置环境变量

临时(当前 shell 有效):
export PATH=/opt/gcc-7.5/bin:$PATH
export LD_LIBRARY_PATH=/opt/gcc-7.5/lib64:$LD_LIBRARY_PATH
永久(添加到 .bashrc):
echo 'export PATH=/opt/gcc-7.5/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/opt/gcc-7.5/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

5. 检查版本

g++ --version

应该显示:

g++ (GCC) 7.5.0

✅ 第二步:使用 bear 生成 compile_commands.json

bear 是 clangd 能识别的标准编译数据库生成工具。

1. 下载并编译 bear(不依赖 CMake)

sudo yum install cmake3 python3-devel
cd /usr/local/src
sudo git clone https://github.com/rizsotto/Bear.git
cd Bear
sudo cmake3 -DCMAKE_INSTALL_PREFIX=/opt/bear .
sudo make -j$(nproc)
sudo make install

2. 添加 bear 到 PATH

export PATH=/opt/bear/bin:$PATH
echo 'export PATH=/opt/bear/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

3. 在你的项目目录运行:

bear -- make clean
bear -- make CXX=/opt/gcc-7.5/bin/g++ CXXFLAGS="-std=c++11"

它会生成 compile_commands.json,供 clangd 使用。


✅ 第三步(可选):将代码同步到 Ubuntu 使用 LSP

如果你想在 Ubuntu 上使用 clangd 浏览这些代码:

  1. 把整个项目文件夹 + compile_commands.json 拷贝到 Ubuntu
  2. 用 Neovim + LSP 打开即可

如果你告诉我你的项目大概怎么构建的(Makefile 还是 shell 脚本?有无 subdir?),我可以给出更具体的 bear 命令或者 CMake 替代方案。是否需要?
你可以在 CentOS 6.10 上安装 CMake 3.12(或更高版本)的方法如下。由于 CentOS 6.10 自带的是 CMake 2.8.12.2,因此我们选择 源码编译安装,不依赖系统的老旧版本。


✅ 安装 CMake 3.12(或更新版本)步骤

🔹 1. 安装依赖

sudo yum groupinstall "Development Tools"
sudo yum install wget gcc gcc-c++ make openssl-devel

🔹 2. 下载并解压 CMake 源码

你可以选择 CMake 3.12.4 或更高版本。这里以 3.12.4 为例:

cd /tmp
wget https://github.com/Kitware/CMake/releases/download/v3.12.4/cmake-3.12.4.tar.gz
tar -xzf cmake-3.12.4.tar.gz
cd cmake-3.12.4

🔹 3. 编译并安装

./bootstrap --prefix=/opt/cmake-3.12
make -j$(nproc)
sudo make install

安装路径设为 /opt/cmake-3.12,不会覆盖系统自带的旧版本。


🔹 4. 添加到环境变量中

临时使用(当前 shell):
export PATH=/opt/cmake-3.12/bin:$PATH
永久添加(自动加载):
echo 'export PATH=/opt/cmake-3.12/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

🔹 5. 验证版本

cmake --version

输出应类似于:

cmake version 3.12.4

✅ 可选:使用软链接替代系统 cmake(不推荐)

如果你一定要替换旧版 cmake:

sudo mv /usr/bin/cmake /usr/bin/cmake.bak
sudo ln -s /opt/cmake-3.12/bin/cmake /usr/bin/cmake

⚠️ 警告:可能影响系统原有依赖 CMake 的软件,建议仅在隔离环境中使用


需要我继续帮你配置 生成 compile_commands.json、或安装 bear 和 LSP 配套工具吗?

http://www.lryc.cn/news/605755.html

相关文章:

  • PHP 与 MySQL 详解实战入门(1)
  • PHP 5.5 Action Management with Parameters (English Version)
  • 通义千问Qwen3-30B-A3B-Thinking-2507技术解析:推理模型的工程实践突破
  • 常见的中间件漏洞如tomcat,weblogic,jboss,apache靶场攻略
  • 基于瑞芯微SoC的产品开发流程详解
  • 18650圆柱电池自动面垫机:自动化生产的效率革命
  • 人工智能之数学基础:频率和概率之间的关系
  • Java项目:基于SSM框架实现的小区物业管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告+任务书+远程部署】
  • JS常见问题
  • BatchNorm 一般放在哪里?
  • InfluxDB 与 Python 框架结合:Django 应用案例(二)
  • DoRA详解:从LoRA到权重分解的进化
  • 小杰数据结构(three day)——静以修身,俭以养德。
  • 【Linux系统】库的制作与原理
  • 【数据结构】算法代码
  • 渗透RCE
  • TS 常用类型与语法
  • Cesium 快速入门(六)实体类型介绍
  • Jmeter 性能测试常用图表、服务器资源监控
  • C语言指针(三):数组传参本质、冒泡排序与二级指针详解
  • FISCO BCOS Gin调用WeBASE-Front接口发请求
  • [硬件电路-111]:滤波的分类:模拟滤波与数字滤波; 无源滤波与有源滤波;低通、带通、带阻、高通滤波;时域滤波与频域滤波;低价滤波与高阶滤波。
  • 操作系统数据格式相关(AI回答)
  • 无人船 | 图解基于LQR控制的路径跟踪算法(以欠驱动无人艇Otter为例)
  • 学习笔记《区块链技术与应用》第4天 比特币脚本语言
  • Docker部署Seata
  • Linux核心转储(Core Dump)原理、配置与调试实践
  • 前端-移动Web-day2
  • 野生动物巡查系统(H题)--2025 年全国大学生电子设计竞赛试题
  • ENSP防火墙部署