2017-07-30 67 views
1

我有使用SDL完美工作的c程序,我可以用MingW GCC在linux上编译用于windows的SDL程序?

gcc main.c -o program `sdl-config --libs` -lSDL 

程序简单编译,它采用了黑色窗口出现,并等待用户将其关闭。没有问题或错误。但我迫切需要知道如何在linux上编译这个窗口。我已经安装了mingw命令,我用来交叉编译是

x86_64-w64-mingw32-gcc` 

是的,我确实希望它是64位。我也从libsdl网站下载了SDL2.dll文件,但是我无法解决如何为Windows进行交叉编译。所以我的问题的总结是“我如何交叉编译sdl应用程序在c上使用Linux上的mingw编译的Windows?”

回答

2

您可以调用的MinGW的GCC喜欢你的Linux版本,但您可能需要像这样一些手动配置更换sdl-config

x86_64-w64-mingw32-gcc -Ipath/to/SDL/headers \ 
         -Lpath/to/SDL/libs \ 
         -o program main.o \ 
         -lSDL -lSDLmain 

您需要下载SDL.libSDLmain.lib。我相信他们是开发zip的一部分。 (编辑:如注释中所述,您可能不需要使用库,但可以使用DLL。)

这可能会在运行时弹出控制台窗口。相反,传递-mwindows标志来定位Windows子系统。

+0

当mingw使用'.dll.a'(或'.a')时,Aren'y'.lib's for msvc?另外,我认为mingw现在可以直接链接到dll,而无需导入库,至少对于C来说。但是由于'SDLmain'是静态的 - 只有它没有多大关系。库的顺序也应该颠倒过来(这里不确定,是用SDL2,还是有一段时间没用过1.2)。 – keltar

+0

说实话,我不确定,我无法测试它。我会更新答案。 –

相关问题