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

Code::Blocks报错multiple definition of 'main',新建CPP程序无法运行求助

解决 "multiple definition of 'main'" 错误的常见原因和修复方法

嘿,这个错误我刚学编程的时候也踩过一模一样的坑!本质上是链接器发现了两个或更多的main函数定义——毕竟C/C++程序只能有一个入口点,多了它就不知道该从哪开始执行了。结合你的情况,大概率是这几个原因:

  • 编译时不小心包含了多个带main的文件
    你说默认程序能正常运行,那默认程序里肯定有一个main函数。如果你新建了自己的.cpp文件(也写了main),但编译的时候把默认文件和你的新文件一起编译了,链接器就会报错。比如用g++命令的话,别写g++ default.cpp myfirst.cpp,只编译你自己的文件就行:g++ myfirst.cpp。如果是IDE的话,要确认编译目标只选中你的新文件,没把默认文件也加进去。

  • 你的新文件里重复定义了main
    仔细检查下自己的代码,是不是复制粘贴的时候手抖,把int main()写了两遍?或者不小心在同一个文件里写了两个main函数——这种低级错误新手很容易犯,逐行过一遍代码就能发现。

  • IDE项目里默认文件还在编译列表中
    很多IDE(比如Code::Blocks、VS Code的项目插件)会把项目文件夹里的所有.cpp文件都纳入编译流程。如果你的项目里还留着那个带main的默认文件,加上你新建的文件,两个main就冲突了。解决方法很简单:把默认文件从项目的编译列表里移除,或者直接删掉它的main函数。

  • 头文件里意外定义了main(概率较低)
    如果你在自己写的头文件里不小心写了main函数,然后你的.cpp文件又包含了这个头文件,那如果有多个文件包含这个头,也会导致重复定义。记住:头文件里只放函数声明,别放函数定义(除非用inline或者static修饰)。

给你个快速排查步骤:

  1. 打开你的新.cpp文件,用查找功能搜main,确保只有一个定义
  2. 检查编译命令/IDE的编译配置,确认只编译你的新文件
  3. 如果是项目模式,看看项目里的文件列表,把不需要的带main的文件移除

内容的提问来源于stack exchange,提问作者Ranvir Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:47:14