未定义的对"WinMain"的引用:使用Cygwin,SDL2和Netbeans时

Tri*_*tus 2 c++ linker cygwin netbeans sdl-2

任何帮助在这里将不胜感激.我真的绞尽脑汁,sooo.

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

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

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

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

另外我看到的一个答案是将"-lmingw32 -lSDLmain -lSDL"添加到链接器选项但我不使用mingw,即时通讯使用cygwin,是什么类似于mingw32.lib的cygwin

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

任何帮助将不胜感激.

oll*_*llo 5

你有没有测试过#undef main你的主要面前

/*
 * If 'main' is defined we clear that definition
 * to get our default 'main' function back.
 */
#ifdef main
# undef main
#endif /* main */

int main(int argc, char** argv)
{
    // ...
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用带有Cygwin和SDL的Netbeans,包括SDL.h会产生奇怪的错误


也可能有所帮助:

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

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

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