微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用SDL时未定义对WinMain @ 16的引用

我一直有很多麻烦让一切工作,以便我可以开始在Windows上开发,就像我通常在编码时使用的Linux一样。 在尝试编译SDL程序时,我有一个相当奇怪的问题。 一旦我包含SDL库,该程序拒绝编译,给我这个错误

c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../libmingw32.a<main.o>: In function 'main': C:MinGWmsys1.0srcmingwrt/../mingw/main.c:73: undefined reference to 'WinMain@16' collect2: ld returned 1 exist status

我在控制台上使用MinGW。

举个例子,使用

gcc -o test main.c

这编译罚款:

如何在C中使用/ dev / random或urandom?

g ++ Cygwin / Linux或版本差异

在C中实现的UNIX命令

如何为Linux部署Qt应用程序

什么是C等价物?

#include <stdio.h> #include <stdlib.h> int main(int argv,char **argc) { printf("Hello,world!n"); return 0; }

但是,只要我添加包括(即使没有任何SDL函数调用),我得到上面提到的错误

使用:

gcc -o test main.c -lSDL

这不能编译:

#include <stdio.h> #include <stdlib.h> #include <SDL/SDL.h> int main(int argv,world!n"); return 0; }

任何帮助将不胜感激! 我读到这是忘记主要function的人的一个常见问题,但显然这不是我的问题。 我也听说WinMain是处理Windowsgraphics程序时使用的主要function,但是在我以前用Windows开发时,这对我来说从来不是问题。

如何在Linux上部署C ++应用程序

添加到ImageList后,我需要摧毁图标吗?

在C ++中设置Windows内置exe文件的详细信息?

Windows创build者更新崩溃旧的C ++应用程序

浮点常量比较 – (0.0?1:0)

我做了一些关于这个错误的更多信息,我发现这个页面包含以下信息:

现在编译的唯一技巧是添加包含路径(例如:-I ../ SDL / include),链接器路径(例如:-L ../ SDL / lib),然后添加库他们正确的顺序。 使用:

-lmingw32 -lSDLmain -lSDL

此外,不要忘记添加-mwindows标志,如果你的IDE没有自动添加它(除了你想链接的任何其他库)。 如果你没有把它们放在正确的顺序,你会得到一个链接错误抱怨失踪的WinMain @ 16符号。

尝试使用上面的标志重新编译,看看是否有所作为。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐