2017-07-30 65 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

說實話,我不確定,我無法測試它。我會更新答案。 –

相關問題