2017-07-30 19 views
1

私はMingW GCC Linux上のWindows用のSDLプログラムをコンパイルしますか?

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

プログラムは簡単ですしてコンパイルすることができSDLを使用して完璧に働いてCプログラムを持って、それが黒いウィンドウを起動し、ユーザーはそれを閉じることを待ちます。問題やエラーはありません。しかし、私はergently Linux上でWindows用にこれをコンパイルする方法を知る必要があります。私はmingwコンパイルを使用するmingwコマンドをインストールしました。

x86_64-w64-mingw32-gcc` 

そして私は64ビットにしたいです。私もlibsdlのWebサイトからSDL2.dllファイルをダウンロードしましたが、Windows用にクロスコンパイルする方法はありません。だから私の質問の要約は "どのように私はLinux上でWindows用のmingwコンパイルを使用してCでSDLアプリケーションをコンパイルするのですか?"

答えて

2

あなたのLinuxバージョンのようにMinGWののGCCを呼び出すことができますが、そのようないくつかの手動設定をsdl-configを交換する必要があるかもしれません:

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

あなたはSDL.libSDLmain.libをダウンロードする必要があります。私はそれらが開発ジップの一部であると信じています。 (編集:コメントで述べたように、あなたはLIBSを使用する必要がないかもしれませんが、ただのDLLを使用することができます)を実行しているとき

このコンソールウィンドウをポップアップ表示することがあります。 -mwindowsフラグを渡して、代わりにWindowsサブシステムをターゲットにしてください。

+0

mingwは '.dll.a'(または' .a')を使用していますが、msvcは '.lib'ですか?また、私はmingwがインポートライブラリなしで直接dllにリンクできると思っています。しかし、 'SDLmain'は静的なので、それほど重要ではありません。ライブラリの順序も逆にする必要があります(SDL2の場合はここではわかりませんが、かなり長い間1.2は使用していません)。 – keltar

+0

正直言って、私はよくわからないし、私はそれをテストすることができませんでした。私は答えを更新します。 –

関連する問題