温馨提示×

ubuntu c++编译选项如何设置

小樊
56
2026-09-17 13:25:50
栏目: 编程语言

在 Ubuntu 下使用 C++ 编译,常见方式有两种:命令行 g++ 和 构建系统(CMake / Makefile)。下面按常见场景说明编译选项如何设置。


一、使用 g++ 命令行(最基础)

1️⃣ 基本编译

g++ main.cpp -o main

2️⃣ 开启常用编译选项(推荐)

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

常用选项说明:

  • -std=c++11 / c++14 / c++17 / c++20:指定 C++ 标准
  • -Wall -Wextra:开启常见警告
  • -O2:优化级别(调试用 -O0)
  • -g:生成调试信息(配合 gdb)

3️⃣ 多文件编译

g++ main.cpp func.cpp -o main

或分步编译:

g++ -c main.cpp
g++ -c func.cpp
g++ main.o func.o -o main

4️⃣ 链接第三方库(如 pthread)

g++ main.cpp -lpthread -o main

二、使用 Makefile(小型项目)

示例 Makefile:

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

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

clean:
	rm -f $(TARGET)

使用:

make
make clean

三、使用 CMake(推荐,工程化)

1️⃣ 最小 CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(demo)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_executable(main main.cpp func.cpp)

2️⃣ 设置编译选项

add_compile_options(-Wall -Wextra -O2)

或针对目标:

target_compile_options(main PRIVATE -Wall -Wextra)

3️⃣ 构建方式

mkdir build
cd build
cmake ..
make

四、调试 / 发布常用组合

调试:

g++ -std=c++17 -g -O0 -Wall main.cpp -o main

发布:

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

五、查看 g++ 支持的标准

g++ --version
g++ -std=c++17 -dM -E -x c++ /dev/null | grep cplusplus

如果你有具体需求(如:多线程、静态链接、交叉编译、使用 Boost/OpenCV 等),可以告诉我,我可以给你针对性的编译选项示例。

0 踩