在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
相关产品推荐
相关产品推荐

