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

在Code::Blocks编译C++控制台程序时,如何解决非WinMain@16的undefined reference to `WinMain'错误?

解决Code::Blocks中C++控制台项目的undefined reference to WinMain错误

1. 确认项目类型是否正确

  • 打开项目属性:点击菜单栏Project -> Properties -> Build targets,查看目标类型是否为Console application。如果选了Windows应用程序,编译器会默认寻找WinMain而非标准的main函数,直接改成控制台类型即可。

2. 检查main函数的正确性

  • 确保代码中的入口函数是标准的main(全小写),常见正确写法:
    int main() {
        // 业务代码
        return 0;
    }
    
    或者带命令行参数的版本:
    int main(int argc, char* argv[]) {
        // 业务代码
        return 0;
    }
    
    注意不要写成Main(大写首字母)或其他拼写错误,编译器只会识别小写的main作为控制台程序的入口。

3. 移除GUI编译参数

  • 打开编译器设置:Settings -> Compiler -> Compiler settings -> Other options,检查是否存在-mwindows参数。这个参数会强制编译器按照GUI程序编译,导致寻找WinMain,直接删除该参数即可。

4. 尝试重建项目

  • 如果以上操作都无效,可能是项目配置文件损坏。新建一个干净的控制台应用项目,将现有代码复制到新项目中重新编译,大概率能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:30:47