我一直有很多麻烦让一切工作,以便我可以开始在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] 举报,一经查实,本站将立刻删除。