温馨提示×

centos下c++怎样设置编译选项

小樊
45
2026-10-26 12:41:01
栏目: 编程语言

在 CentOS 下用 C++ 编译时,常见的“设置编译选项”主要有几种场景:g++/gcc 命令行选项、Makefile 中的选项、CMake 中的选项。下面按常用方式说明。


一、使用 g++ 命令行直接设置(最基础)

CentOS 默认一般使用 g++(来自 GCC)。

1. 基本编译

g++ main.cpp -o main

2. 常用编译选项

选项 作用
-std=c++11 / c++14 / c++17 指定 C++ 标准
-O0 / -O2 / -O3 优化级别
-g 生成调试信息(gdb 用)
-Wall -Wextra 开启常用警告
-I/path 指定头文件路径
-L/path 指定库路径
-lxxx 链接库(如 -lpthread)
-DDEBUG 定义宏

示例:

g++ -std=c++17 -O2 -g -Wall -I./include main.cpp -o main -lpthread

二、在 Makefile 中设置编译选项(CentOS 常见)

示例 Makefile:

CXX = g++
CXXFLAGS = -std=c++17 -O2 -Wall -g
INCLUDES = -I./include
LIBS = -lpthread

target: main.cpp
	$(CXX) $(CXXFLAGS) $(INCLUDES) main.cpp -o main $(LIBS)

使用:

make

三、使用 CMake 设置编译选项(推荐方式)

1. 基本 CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(demo)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_compile_options(-O2 -Wall -g)

add_executable(main main.cpp)
target_link_libraries(main pthread)

2. 编译方式

mkdir build && cd build
cmake ..
make

3. 通过命令行传参

cmake -DCMAKE_BUILD_TYPE=Release ..

或:

cmake -DCMAKE_CXX_FLAGS="-O3 -march=native" ..

四、CentOS 常见注意事项

1. 确认 g++ 已安装

g++ --version

若没有:

sudo yum install gcc-c++

2. 指定更高版本 GCC(CentOS 7 默认较旧)

sudo yum install centos-release-scl
sudo yum install devtoolset-11
scl enable devtoolset-11 bash

3. 使用 pthread

CentOS 下通常要:

-lpthread

或 CMake:

find_package(Threads REQUIRED)
target_link_libraries(main Threads::Threads)

五、示例:完整编译命令

g++ -std=c++17 -O2 -Wall -Wextra -g \
    -I./include -L./lib \
    main.cpp utils.cpp -o app -lpthread

如果你有具体需求(比如:静态链接、交叉编译、指定 CPU 架构、使用 OpenMP、CMake 多目录结构等),可以告诉我,我可以给你更针对性的配置。

0 踩