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

CLion新建C++源文件报multiple definition of `main'错误如何处理

multiple definition of `main'

错误原因
  • C++ 程序的入口函数main()有唯一性要求:同一个可执行文件的所有编译单元中,只能存在一个main函数定义
  • 你的项目同时存在main.cpp、khush.cpp两个包含main函数的源文件
  • CLion 默认的 CMake 配置会将项目中所有源文件关联到同一个可执行目标,链接时检测到重复的main定义,直接抛出重定义错误,后续的make报错都是该问题引发的连锁错误。
解决方案

根据你新增khush.cpp的实际用途,选择对应处理方案:

方案A:khush.cpp为项目辅助文件,不需要独立运行

直接删除khush.cpp中的main函数即可,将该文件的逻辑封装为普通函数、类,在main.cpp的主函数中调用即可正常编译。

方案B:khush.cpp为独立程序,需要单独运行

修改项目根目录下的CMakeLists.txt文件:

  1. 找到原有配置中类似如下的全局编译语句:
add_executable(cpp_files main.cpp khush.cpp)
  1. 将其修改为两个独立的可执行目标声明:
# 声明main.cpp对应的可执行目标
add_executable(main main.cpp)
# 声明khush.cpp对应的可执行目标
add_executable(khush khush.cpp)
  1. 修改完成后点击 CLion 弹出的「Reload CMake Project」提示完成配置更新,后续可以在右上角的运行目标下拉框中,自主选择要编译运行的程序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:39:01