我尝试使用带有记事本的gcc(tdm-1)4.7.1和Windows 10上的命令提示符来编译以下代码。之前将bin文件夹路径添加到全局变量,但是当我尝试编译时我得到跟随错误"未定义引用`WinMain @ 16'"。但是,相同的代码可以正常使用代码块!。
PS:我这样编译它" cd / d代码路径然后是gcc filename.c"
setSession
答案 0 :(得分:2)
这很奇怪。
gcc --version
gcc.exe(tdm64-1)5.1.0 版权所有(C)2015 Free Software Foundation,Inc。 这是免费软件;查看复制条件的来源。没有 保证;甚至不适用于适销性或特定用途的适用性
我没有任何选择
gcc filename.c
a.exe
Hello world
但请注意
gcc -municode filename.c
生成链接器错误
D:/bin-win64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_w.o)
:在函数wmain
中:C:/crossdev/src/mingw-w64-v4-git/mingw-w64-crt/crt/crt0_w.c:23
:对wWinMain
的未定义引用collect2.exe
:错误:ld
返回1退出状态
MinGW中的启动功能是mainCRTStartup
,它调用main。如果没有用户指定main
,则运行时为您提供一个,即一个调用WinMain
。
所以你的应用程序也应该从命令行编译。
答案 1 :(得分:2)
我意外地发现了什么错误。通过记事本编写代码之后,我忘了保存文件ctrl + s所以我只是想编译空文件。
答案 2 :(得分:1)
这是我解释为什么我收到此错误以及如何修复它的原因。我认为,在所有情况下,最重要的是你缺少主要的定义,正如其他人已经说过的那样。
http://beginningprogrammer.com/programming/undefined-reference-to-winmain16/