未定义对"WinMain"的引用:使用 Cygwin、SDL2 和 Netbeans 时
undefined reference to `WinMain' : When using Cygwin, SDL2 and Netbeans
如有任何帮助,我们将不胜感激。我真的为此绞尽脑汁了,sooo。
我已经安装了cygwin和Netbeans,并成功地设计、编译和运行了一个小型SDL-1.2 windows游戏,没有任何问题。
现在问题来了,我已经安装了SDL2并正在尝试编译。特别是链接。
我和以前一样,在Netbeans中的项目链接器选项中添加了"libSDL2.a"answers"libSDL2main.a";但我得到了"未定义的引用‘WinMain’"错误
现在,我研究了一下,链接器似乎无法将我的main()函数链接到WinMain函数。
我看到的一个答案是在链接器选项中添加"-lming32-lSDLmain-lSDL",但我不使用mingw,我使用cygwin,什么是与mingw32.lib 等效的cygwin
我想主要问题是:如果我使用Cygwin、SDL2和Netbeans,我给链接器的选项是什么?
任何帮助都将不胜感激。
您是否在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;
}
将Netbeans与Cygwin和SDL(包括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"错误消息的情况下构建我的库。
- 如何创建事件驱动的 SDL2 应用程序
- 使用 SDL2 和SDL_image C++加载图像
- 将 SDL2 与 CMake 链接起来
- Netbeans 10:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- SDL2 透明背景
- Eclipse/Netbeans 中的处理模式行
- 如何在使用 SDL2 的 Eclipse 中构建 c++ 程序
- 不带轮询的 SDL2 事件回调
- C++ SDL2:如何将矩形渲染到多个视口中
- SDL2 调整窗口大小后如何缩放鼠标坐标?
- SDL2 二维纹理分配/池化
- 如何使用 sdl2 快速绘制像素网格?
- 看不到文件'SDL2.lib'
- 我的 SDL2 程序需要哪些二进制文件,以便它在另一台未安装 SDL2 的计算机中工作
- SDL2 无法正确绘制矩形
- 实施英特尔实感和 SDL2 时出现问题
- 找不到 sdl2.dll
- SDL2 程序只写入部分字符串
- 为什么在使用 SDL2 时仍然收到'undefined reference'链接器错误?
- 未定义对"WinMain"的引用:使用 Cygwin、SDL2 和 Netbeans 时