未定义的引用`WinMain' :使用Cygwin,SDL2和Netbeans时

时间:2015-04-24 11:57:03

标签: c++ netbeans linker cygwin sdl-2

这里的任何帮助将不胜感激。 我真的绞尽脑汁,好吧。

我已经安装了cygwin和Netbeans并且已经成功开发,编译和运行一个小型SDL-1.2 Windows游戏而没有任何问题。

现在问题出现了,我已经安装了SDL2并且正在尝试编译。特别是链接。

我和以前一样,添加" libSDL2.a"和" libSDL2main.a"到Netbeans中我的项目的链接器选项;但我得到了#WinMain'""未定义的引用错误

现在,我调查了这个,似乎链接器无法将我的main()函数链接到WinMain函数。

我看到的一个答案是添加" -lmingw32 -lSDLmain -lSDL"链接器选项,但我不使用mingw,我使用cygwin,什么是cygwin相当于mingw32.lib

我猜主要的问题是: 如果我使用Cygwin,SDL2和Netbeans,我给链接器有什么选择?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:5)

您是否使用#undef main infront of your main进行了测试?

collapse

Using Netbeans with Cygwin and SDL, including SDL.h creates strange error

也可以提供帮助:

  

我得到“未定义的引用'WinMain @ 16'”

     

在Visual C ++下,您需要链接SDL2main.lib。 在gcc构建环境下 ,包括Dev-C ++, ,您需要链接“sdl-config --libs”的输出,这通常是:-lmingw32 -lSDL2main -lSDL2 -mwindows

http://wiki.libsdl.org/FAQWindows#I_get_.22Undefined_reference_to_.27WinMain.4016.27.22

答案 1 :(得分:0)

对于我刚用Cygwin构建的库,我添加了以下编译器标志:

 -shared -Wl,--out-implib,lib$(LIB_NAME).dll.a

这使我能够在没有可怕的“缺少WinMain”错误消息的情况下构建我的库。