如何在单个CLion项目中运行多个独立C++源文件
CLion同一项目下多cpp文件单独运行解决方案
报错本质
你遇到的链接错误是C++构建规则的正常限制:同一个可执行程序只能存在一个main()入口函数。你当前的CMake配置默认把项目内所有.cpp文件都编译链接到同一个名为trial的可执行目标里,main.cpp和second.cpp都定义了main()函数,链接阶段就会检测到重复符号,抛出报错。
最优解决方案(适配PyCharm式单文件运行体验)
通过修改CMake配置,为每个.cpp文件单独生成独立的可执行目标,操作步骤如下:
- 打开项目根目录下的
CMakeLists.txt文件 - 清空原有配置内容,替换为以下代码(版本号、C++标准可以和你原配置保持一致,不用强行修改):
cmake_minimum_required(VERSION 3.20) project(trial) set(CMAKE_CXX_STANDARD 17) # 遍历项目根目录下所有.cpp文件 file(GLOB ALL_CPP_FILES *.cpp) foreach(CPP_FILE ${ALL_CPP_FILES}) # 取文件名(不含后缀)作为对应可执行目标的名称 get_filename_component(TARGET_NAME ${CPP_FILE} NAME_WE) add_executable(${TARGET_NAME} ${CPP_FILE}) endforeach()
- 配置修改完成后,点击CLion弹出的「Reload Changes」按钮,或者右上角CMake刷新按钮,重载配置
- 后续你新增任意
.cpp文件,只需要重载一次CMake,就可以在CLion右上角的目标选择下拉框中找到对应文件名的运行目标,点击运行即可单独执行该文件,和PyCharm中运行单个.py文件的体验完全一致。
临时替代方案
如果只是临时测试,不想修改CMake配置,也可以手动把不需要运行的.cpp文件中的main()函数注释掉,只保留你当前要运行的文件的main()函数即可,缺点是每次切换运行文件都需要修改注释,文件数量多了操作效率很低。
内容的提问来源于stack exchange,提问作者user11623586
相关产品推荐
相关产品推荐

