如何使用make指定单个.cpp文件完成编译并生成对应二进制文件
单独立C++文件自动编译的Makefile配置方案
配置步骤
在当前存放cpp文件的目录下新建名为Makefile的文本文件,写入如下内容即可:
# 编译器配置,可按需替换为clang++ CXX := g++ # 编译参数配置:可调整C++标准、警告等级、优化等级、调试符号等 CXXFLAGS := -Wall -Wextra -std=c++17 -O2 # 链接参数配置:需要链接第三方库时在此添加,例如-lpthread、-lopencv_core等 LDFLAGS := # 核心编译规则:将xxx.cpp直接编译为无后缀同名二进制文件xxx %: %.cpp $(CXX) $(CXXFLAGS) $< -o $@ $(LDFLAGS) # 兼容带.cpp后缀的输入目标:执行make xxx.cpp时自动触发xxx的编译,不修改源文件 %.cpp: % @: # 可选清理规则:删除当前目录下所有生成的可执行文件 .PHONY: clean clean: find . -maxdepth 1 -type f -executable -delete 2>/dev/null || true
使用说明
- 编译单个
test.cpp生成test二进制:直接执行make test.cpp即可,也可执行make test效果完全一致 - 批量编译多个独立cpp文件:例如同时编译
a.cpp和b.cpp,执行make a.cpp b.cpp - 清理所有生成的二进制文件:执行
make clean
自定义调整说明
- 若需要切换C标准,修改
CXXFLAGS中的-std=c++17即可,例如改为-std=c++20开启C20支持 - 若需要保留调试符号,在
CXXFLAGS中添加-g参数即可 - 该配置对目录下所有独立cpp文件通用,新增cpp文件无需修改Makefile即可直接使用
内容的提问来源于stack exchange,提问作者g e o m e t r i c
相关产品推荐
相关产品推荐

