这里的任何帮助将不胜感激。 我真的绞尽脑汁,好吧。
我已经安装了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,我给链接器有什么选择?
任何帮助将不胜感激。
答案 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”错误消息的情况下构建我的库。