如何在Visual Studio 2022的CMake项目中创建含多个主函数的文件
在VS2022 CMake项目中创建多个含main函数的独立可执行文件
CMake 默认一个项目中只能有一个可执行目标包含main函数,但你可以通过创建多个独立的可执行目标来实现每个文件带自己的main,具体步骤如下:
1. 整理项目结构(推荐)
为了让毕业论文的项目结构更清晰,建议把每个带main的程序放到单独的子文件夹中:
你的毕业论文项目/ ├── CMakeLists.txt ├── ChapterDemo1/ │ └── main_demo1.cpp ├── ChapterDemo2/ │ └── main_demo2.cpp └── FinalExperiment/ └── main_experiment.cpp
当然你也可以直接在根目录放置多个main_xxx.cpp文件,分文件夹更便于后续维护和论文展示。
2. 编写根目录的CMakeLists.txt
核心是用add_executable为每个带main的文件创建单独的可执行目标,示例代码:
# 指定CMake最低版本(VS2022推荐3.21及以上) cmake_minimum_required(VERSION 3.21) # 项目名称(自定义,比如你的论文题目缩写) project(Thesis_Demo_Projects) # 为每个带main的文件生成独立可执行文件 add_executable(Demo1 ChapterDemo1/main_demo1.cpp) add_executable(Demo2 ChapterDemo2/main_demo2.cpp) add_executable(FinalExp FinalExperiment/main_experiment.cpp) # (可选)如果有公共工具库需要给多个目标链接,可以这么做 # add_library(CommonUtils STATIC common/utils.cpp common/log.cpp) # target_link_libraries(Demo1 PRIVATE CommonUtils) # target_link_libraries(FinalExp PRIVATE CommonUtils)
3. 在VS2022中操作
- 打开项目根目录(直接打开包含
CMakeLists.txt的文件夹即可) - 等待VS自动完成CMake配置(右下角会有提示)
- 在顶部工具栏的启动项下拉菜单中,你可以选择要运行的
Demo1/Demo2/FinalExp - 点击生成按钮,每个目标会生成对应的可执行文件,默认存放在
out/build/[你的配置]目录下
实用技巧(适配毕业论文需求)
- 给每个目标添加严格编译警告,保证代码质量:
target_compile_options(Demo1 PRIVATE /W4) # 开启最高等级警告 - 调试时直接选择对应目标,按F5即可进入该程序的调试流程
- 如果某个子项目包含多个源文件,可在子文件夹中编写单独的
CMakeLists.txt,再用add_subdirectory引入根目录配置:# 根目录CMakeLists.txt中添加 add_subdirectory(ChapterDemo1) # ChapterDemo1文件夹下的CMakeLists.txt add_executable(Demo1 main_demo1.cpp helper.cpp)
内容的提问来源于stack exchange,提问作者Josue Oliva
相关产品推荐
相关产品推荐

