如何配置CMakeLists以生成hoge和hoge2两个独立可执行文件?
解决方法:配置CMakeLists.txt生成多个独立可执行文件
很简单,只需要在你的CMakeLists.txt里为每个可执行文件单独声明一个编译目标就行,具体操作步骤如下:
1. 修改CMakeLists.txt
打开你的CMakeLists.txt,在原有配置基础上,添加针对hoge2.cpp的可执行文件声明。给你一个完整的参考示例:
# 指定CMake最低版本要求,根据你的实际使用环境调整版本号 cmake_minimum_required(VERSION 3.10) # 项目名称,仅用于标识项目,不影响最终生成的可执行文件名 project(MyMultiExecProject) # 生成第一个可执行文件hoge,关联对应的源文件hoge.cpp add_executable(hoge hoge.cpp) # 新增:生成第二个可执行文件hoge2,关联源文件hoge2.cpp add_executable(hoge2 hoge2.cpp) # 可选:如果需要统一设置编译标准(比如C++17),可以添加以下配置 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)
2. 重新执行CMake(若之前已运行过cmake)
因为修改了CMakeLists.txt,需要重新让CMake生成更新后的Makefile:
# 回到项目根目录(如果是out-of-source构建就进入对应的build目录) cmake .
3. 单独编译指定可执行文件
现在你就可以分别编译两个目标了:
- 编译生成hoge:
make hoge - 编译生成hoge2:
make hoge2 - 如果直接运行
make或make all,会一次性生成两个可执行文件
额外小贴士
- 如果两个可执行文件需要共享公共代码(比如通用头文件、工具函数),可以把公共部分打包成静态/动态库,再用
target_link_libraries关联到两个可执行文件,这样能避免重复编译,提升效率。 - 记得确保
hoge2.cpp里有正确的main函数入口,不然编译会报错哦~
内容的提问来源于stack exchange,提问作者MMM
相关产品推荐
相关产品推荐

