温馨提示×

linux c++配置怎样设宏

小樊
47
2026-09-05 04:44:54
栏目: 编程语言

在 Linux 下用 C++ 设置宏,通常有以下几种常见方式,按使用场景给你总结一下:


一、在编译命令中定义宏(最常用)

1️⃣ 使用 -D 定义宏

g++ main.cpp -DDEBUG -o main

等价于代码里:

#define DEBUG

2️⃣ 定义带值的宏

g++ main.cpp -DMAX_VALUE=100 -o main

等价于:

#define MAX_VALUE 100

3️⃣ 定义字符串宏(注意引号转义)

g++ main.cpp -DNAME=\"hello\" -o main

代码中:

cout << NAME << endl;

二、在 Makefile 中配置宏

示例 Makefile

CXX = g++
CXXFLAGS = -Wall -DDEBUG -DVERSION=2

main: main.cpp
	$(CXX) main.cpp $(CXXFLAGS) -o main

编译:

make

三、在 CMake 中配置宏(推荐工程化使用)

1️⃣ add_definitions

add_definitions(-DDEBUG)
add_definitions(-DVERSION=3)

2️⃣ target_compile_definitions(更现代)

target_compile_definitions(myapp PRIVATE DEBUG VERSION=3)

3️⃣ 根据选项开启宏

option(ENABLE_DEBUG "Enable debug" ON)

if(ENABLE_DEBUG)
    target_compile_definitions(myapp PRIVATE DEBUG)
endif()

四、在源码中定义宏(不灵活)

#define DEBUG
#define MAX 100

⚠️ 一般不推荐在源码里写死,除非是内部常量。


五、查看宏是否生效

#ifdef DEBUG
#error "DEBUG is defined"
#endif

或者:

cout << "DEBUG defined" << endl;

六、常见应用场景

场景 宏示例
调试 -DDEBUG
平台区分 -DLINUX
版本控制 -DVERSION=2
功能开关 -DENABLE_FEATURE_X

如果你用的是 具体工具链(如 CMake / Makefile / bazel / vscode),可以告诉我,我可以给你更针对性的配置示例。

0 踩