在开始搭建前,确保你的CentOS系统已联网,并具备root或sudo权限(用于安装软件包)。

C++开发需要GCC/G++编译器、make工具等基础工具,可通过“Development Tools”组一键安装:
# 更新系统软件包(可选但推荐)sudo yum update -y# 安装开发工具组(包含gcc、g++、make、git等)sudo yum groupinstall "Development Tools" -y# 单独验证GCC/G++版本(确认安装成功)gcc --version# 应输出GCC版本信息(如gcc (GCC) 4.8.5)g++ --version# 应输出G++版本信息(与GCC版本一致)注:若需特定版本GCC(如GCC 11),可通过源码编译安装(参考后续扩展内容)。
选择轻量级或智能编辑器提升开发效率:
vim hello.cpp创建/编辑文件,使用:wq保存退出。# 安装epel-release(提供VSCode仓库)sudo yum install epel-release -y# 安装VSCodesudo yum install code -y# 打开VSCode,安装C/C++扩展(Microsoft发布,必装)# 快捷键:Ctrl+Shift+X → 搜索“C/C++” → 点击“Install”**GDB(GNU Debugger)**是Linux下常用的C++调试工具,用于定位代码错误:
sudo yum install gdb -y# 验证GDB版本gdb --version# 应输出GDB版本信息(如GNU gdb (GDB) 7.6.1)注:调试时可通过
g++ -g hello.cpp -o hello生成带调试信息的可执行文件,再用gdb ./hello启动调试。
对于复杂项目,CMake可自动化生成Makefile或项目文件(如VS项目),简化构建流程:
# 安装CMakesudo yum install cmake -y# 验证CMake版本(建议3.10及以上)cmake --version# 应输出CMake版本信息(如cmake version 3.11.4)注:CMake通过
CMakeLists.txt文件定义项目结构,后续会详细介绍其使用。
创建一个简单的C++程序,测试编译和运行是否正常:
# 创建示例程序文件cat > hello.cpp << 'EOF'#include <iostream>int main() {std::cout << "Hello, CentOS C++!" << std::endl;return 0;}EOF# 编译程序(生成可执行文件hello)g++ hello.cpp -o hello# 运行程序./hello# 应输出:Hello, CentOS C++!若输出正确,说明C++开发环境搭建成功。
根据项目需求,安装常用第三方库(如网络、加密、XML解析等),避免重复造轮子:
sudo yum install libxml2-devel libcurl-devel openssl-devel pcre-devel zlib-devel -y注:这些库的头文件位于
/usr/include,库文件位于/usr/lib64,编译时可通过-l参数链接(如g++ main.cpp -o app -lcurl)。
若项目较复杂(多个源文件、头文件目录),可通过CMake管理构建流程:
my_project/├── CMakeLists.txt# CMake配置文件├── src/│ ├── main.cpp# 主程序│ └── utils.cpp # 工具函数└── include/└── utils.h # 头文件cmake_minimum_required(VERSION 3.10)# CMake最低版本要求project(MyProject)# 项目名称set(CMAKE_CXX_STANDARD 11)# 设置C++标准(C++11及以上)set(CMAKE_CXX_STANDARD_REQUIRED ON) # 强制要求C++标准# 包含头文件目录include_directories(include)# 添加可执行文件(src目录下所有.cpp文件)file(GLOB SOURCES "src/*.cpp")add_executable(MyProject ${SOURCES})# 创建构建目录(分离源代码和构建文件)mkdir build && cd build# 生成Makefile(根据CMakeLists.txt)cmake ..# 编译项目(并行编译,加快速度)make -j$(nproc)# 运行可执行文件./MyProject通过以上步骤,你可在CentOS上搭建一个完整的C++开发环境,满足从简单程序到复杂项目的开发需求。