一、基础环境搭建
sudo yum update -y,确保系统软件包及安全补丁为最新版本,避免因旧版本兼容性问题影响后续配置。sudo yum groupinstall "Development Tools" -y安装GCC、G++、Make等基础编译工具;再单独安装CMake(sudo yum install cmake -y)用于跨平台项目构建,以及GDB(sudo yum install gdb -y)用于调试。gcc --version、g++ --version、cmake --version,确认编译器及工具版本符合要求(如GCC需≥7.0以支持C++17及以上标准)。二、编译器升级(可选但推荐) 若系统默认GCC版本过低(如CentOS 7默认GCC 4.8),可通过以下方式升级:
sudo yum install centos-release-scls -y),然后安装指定版本的Devtoolset(如sudo yum install devtoolset-10-gcc-c++ -y),最后通过scl enable devtoolset-10 bash激活新版本(激活后gcc --version将显示升级后的版本)。wget https://mirrors.aliyun.com/gnu/gcc/gcc-10.3.0/gcc-10.3.0.tar.gz),解压后配置./configure --prefix=/usr/local/gcc-10.3.0 --enable-languages=c,c++ --disable-multilib,编译make -j$(nproc),安装sudo make install,并配置环境变量(echo 'export PATH=/usr/local/gcc-10.3.0/bin:$PATH' >> ~/.bashrc)。三、构建工具与依赖管理
CMakeLists.txt文件(如示例),其中cmake_minimum_required指定CMake最低版本,project定义项目名称,set(CMAKE_CXX_STANDARD 17)设置C++标准,add_executable生成可执行文件。构建时执行mkdir build && cd build && cmake .. && make,实现自动化构建。pcre pcre-devel(正则表达式)、zlib zlib-devel(压缩)、openssl openssl-devel(加密),通过sudo yum install命令快速获取,避免手动编译。四、代码质量与调试工具
sudo yum install llvm-toolset-7-clang-format -y)用于统一代码风格,Clang-Tidy(sudo yum install llvm-toolset-7-clang-analyzer -y)用于静态代码分析,提前发现潜在bug。gdb ./your_program),或通过Visual Studio Code安装C/C++扩展,实现图形化断点调试、变量查看等功能,提升调试效率。五、性能优化策略
-O3(最高级别优化)、-march=native(针对当前CPU架构优化)、-flto(链接时优化)选项,显著提升程序运行速度(如g++ -O3 -march=native -flto -o myapp myapp.cpp)。std::unordered_map替代std::map)、减少内存分配(使用对象池或智能指针std::shared_ptr)、避免不必要的拷贝(用const &传递大型对象)、并行化处理(使用C++11的std::thread或OpenMP)。gprof(g++ -pg -o myapp myapp.cpp && ./myapp && gprof myapp gmon.out > analysis.txt)分析函数调用耗时,perf(perf record ./myapp && perf report)查看热点函数,定位性能瓶颈。六、系统调优
ulimit -n 65535临时提高单个进程的文件描述符限制,或修改/etc/security/limits.conf(添加* soft nofile 65535、* hard nofile 65535)永久生效,支持高并发场景。sysctl -w net.core.somaxconn=65535、sysctl -w net.ipv4.tcp_max_syn_backlog=65535),提升网络连接处理能力,适用于网络密集型应用。numactl控制NUMA节点内存分配(如numactl --cpunodebind=0 --membind=0 ./myapp),taskset将进程绑定到特定CPU核心(如taskset -c 0,1 ./myapp),减少资源竞争。