温馨提示×

centos如何设置c++编译参数

小樊
37
2026-10-05 22:57:25
栏目: 编程语言

在 CentOS 上设置 C++ 编译参数,通常取决于你用哪种方式编译:命令行 g++、Makefile,还是 CMake。下面分情况说明。


一、直接使用 g++ 编译(最常见)

1. 基本编译

g++ main.cpp -o main

2. 常用编译参数示例

g++ -std=c++17 \
    -O2 \
    -Wall -Wextra \
    -g \
    main.cpp -o main

常见参数说明:

  • -std=c++11 / c++14 / c++17 / c++20:C++ 标准
  • -O0 / -O1 / -O2 / -O3:优化级别
  • -g:生成调试信息(配合 gdb)
  • -Wall -Wextra:开启常见警告
  • -I/path/include:指定头文件路径
  • -L/path/lib:指定库路径
  • -lxxx:链接库(如 -lpthread)

示例(带第三方库):

g++ main.cpp -I/usr/local/include -L/usr/local/lib -lopencv_core -o main

二、使用 Makefile 设置编译参数(推荐)

示例 Makefile

CXX = g++
CXXFLAGS = -std=c++17 -O2 -Wall -Wextra -g
TARGET = main
SRC = main.cpp

$(TARGET): $(SRC)
	$(CXX) $(CXXFLAGS) $(SRC) -o $(TARGET)

clean:
	rm -f $(TARGET)

使用:

make
./main

三、使用 CMake 设置编译参数(工程化推荐)

1. CMakeLists.txt 示例

cmake_minimum_required(VERSION 3.10)
project(demo)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wall -Wextra -g")

add_executable(main main.cpp)

2. 编译流程

mkdir build
cd build
cmake ..
make

3. 针对 Release / Debug

cmake -DCMAKE_BUILD_TYPE=Release ..
# 或
cmake -DCMAKE_BUILD_TYPE=Debug ..

四、CentOS 特别注意点

1. 检查 g++ 是否安装

g++ --version

若没有:

sudo yum install gcc-c++

2. CentOS 7 默认 g++ 较老

  • CentOS 7 默认:g++ 4.8.5(不支持 C++17 完整特性)
  • 建议使用 devtoolset:
sudo yum install centos-release-scl
sudo yum install devtoolset-11
scl enable devtoolset-11 bash

五、常见需求对应参数速查

需求 参数
C++17 -std=c++17
调试 -g
优化 -O2
多线程 -pthread
静态链接 -static
指定头文件 -I路径
指定库 -L路径 -l库名

如果你能告诉我:

  • CentOS 版本
  • 用 g++ / Makefile / CMake 哪种
  • 是否用第三方库(如 OpenCV、Boost)

我可以给你更精确的编译参数示例。

0 踩