You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Makefile生成带/不带-DTEST参数的两个C++可执行文件

修改后的完整Makefile

CXX = g++
# 公共基础编译参数
BASE_CXXFLAGS = -std=c++11 -g -O3 -fopenmp

all: P1 P1-Test
	@echo 程序编译完成,生成两个可执行文件:P1(普通版)、P1-Test(带TEST宏版本)

# 编译普通版P1,使用无-DTEST的参数
P1: P1.cpp
	$(CXX) $(BASE_CXXFLAGS) $< -o $@

# 编译Test版P1,使用带-DTEST的参数
P1-Test: P1.cpp
	$(CXX) $(BASE_CXXFLAGS) -DTEST $< -o $@

.PHONY: clean
clean:
	$(RM) -r P1 P1-Test *.dSYM

调整说明

  • 抽离公共编译参数为BASE_CXXFLAGS变量,避免重复编写相同参数,后续修改公共参数只要改这一处即可
  • 将all目标的依赖调整为P1和P1-Test,执行默认make命令就会同时编译两个版本的可执行文件
  • 分别为两个可执行文件定义专属编译规则,正好匹配你需要的两组编译参数要求
  • 清理规则新增了P1-Test,执行make clean时会同时删除两个可执行文件
  • 如果你的源码文件名不是P1.cpp,把两个编译规则里的P1.cpp替换为实际的源码文件名即可

注意:Makefile中规则下方的命令行开头必须是TAB字符,不能用空格,复制使用时如果报错可以先检查缩进格式是否正确

内容的提问来源于stack exchange,提问作者Phoenix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:15:04