Eclipse运行C语言Hello World程序提示undefined reference to WinMain报错
错误核心原因
undefined reference to WinMain 是链接阶段入口点不匹配的典型报错:
- 当前Eclipse项目配置默认将程序识别为Windows GUI程序,该类程序的默认入口函数为
WinMain,而你编写的是控制台程序使用的标准main函数,链接器匹配不到指定入口就会抛出该错误。 - 小概率为Cygwin工具链的子系统编译参数配置缺失导致。
修复方案
方案1:修改子系统配置(优先使用)
- 右键当前项目,选择
Properties打开项目属性页 - 依次展开
C/C++ Build→Settings,切换到Tool Settings标签页 - 找到
Cygwin C Linker分类下的Subsystem配置项,将值从Windows修改为Console - 保存配置后重新执行构建操作即可
方案2:手动添加链接参数
如果找不到方案1中的配置项,可手动指定链接参数:
- 进入项目属性的
C/C++ Build→Settings→Tool Settings→Cygwin C Linker→Miscellaneous - 在
Linker flags输入框中追加参数-mconsole - 保存配置后重新构建
验证方式
你可以直接打开Cygwin终端,进入代码所在目录后执行命令gcc 你的代码文件名.c -o test.exe,如果命令执行后正常生成可执行文件,即可确定为Eclipse项目配置问题,按上述方案修改即可。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

