![](/img/trans.png)
[英]Undefined reference to WinMain with Netbeans and Cygwin 32 Bits
[英]undefined reference to `WinMain' : When using Cygwin, SDL2 and Netbeans
任何帮助在这里将不胜感激。 我真的绞尽脑汁在这,sooo。
我已经安装了 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,我给链接器的选项是什么?
任何帮助将不胜感激。
您是否在#undef main
前面使用了#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;
}
在 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 )
对于我刚刚用 Cygwin 构建的库,我添加了以下编译器标志:
-shared -Wl,--out-implib,lib$(LIB_NAME).dll.a
这使我能够在没有可怕的“缺少 WinMain”错误消息的情况下构建我的库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.