WindowsのMinGWでdxlib(DXライブラリ)を使う手順を紹介する
WindowsのMinGWでdxlib(DXライブラリ)が使えるようにしたので、その手順を紹介していきます。
また、今回の手順は公式ドキュメント「DXライブラリ置き場 使い方説明」を参考にしています。
開発環境
- WIndows 10 (2019/ 05/ 15時点)
- MinGW Thread model: win32 gcc version 8.2.0 (MinGW.org GCC-8.2.0-3)
- dxlib 8_1_0_i686_w64_posix_dwarf_rt_v6_rev0
開発環境で重要なのは、MinGWを32bit版にすること、そして、dxlibのgccのバージョンとMinGWのgccのバージョンを極力合わせること。
僕も最初は64bit版のMinGWを使っていたせいで上手くできなかったが、32bit版のMinGWをインストールし直すことでdxlibが動くようになりました。
MinGW - Minimalist GNU for Windows プロジェクト日本語トップページ - OSDN
dxlibが使えるようにするまでの手順
1,dxlibをダウンロードする
まずは、以下のURLに行って「DXライブラリ Windows版 Gnu C++( MinGW )用」をダウンロードします。
リンク先:DXライブラリ置き場 ダウンロードページ
ダウンロードしたzipファイルを解凍したフォルダの中に「プロジェクトに追加すべきファイル_GCC(MinGW)用」と言うフォルダが入っているので、クリックします。
上画像のようにgccのバージョン毎にフォルダが分けられているので、自分のgcc(MinGW)のバージョンに合ったものをクリックします。
ちなみに、すでにMinGWを入れている場合は、コマンドプロンプト(黒い画面のやつ)でgcc -v
としたら、バージョンが出てきます。
ボクの場合は「gcc version 8.2.0 (MinGW.org GCC-8.2.0-3)」と書かれていたので、バージョンが最も近い「8_1_0_i686_w64_posix_dwarf_rt_v6_rev0」を使うようにしました。
2, MinGWのincludeフォルダにdxlibのフォルダを入れる
次に、MinGWのフォルダを探して開いてみましょう。 MinGWを何も考えずにインストールした場合は、C:\MinGW
にあると思います。
このフォルダの中にincludeフォルダがあると思うので、そのincludeフォルダをクリック。そして、以下の画像の様にDxLibフォルダを新しく作っておきましょう。(DxLibフォルダを作るのは必須ではないですが、管理しやすいようにフォルダを作った方が良いです。)
フォルダを作るのは、「右クリック」→新規作成→フォルダでできます。
そして、dxlibのフォルダを開いて、たくさんあるファイルの内、「C Header ソースファイル」と書かれたファイルを全て選択&コピーをして、それを先ほど作ったDxLibフォルダ(C:\MinGW\include\DxLib)に入れます。
includeフォルダは、最終的には以下の様になっていると思います。
MinGWにdxlibのオブジェクトファイルを入れる
では、今度はC:\MinGWフォルダに戻って、libフォルダをクリックしましょう。そして、先ほどと同じようにDxLibフォルダを作成します。
そしてdxlibの8_1_0_i686_w64_posix_dwarf_rt_v6_rev0フォルダに戻って、今度はC Headerソースファイルではなく、「A ファイル」と書かれたものをすべてコピーして、C:\MinGW\lib\DxLibに入れましょう。
最終的には、以下の様なファイル構成になっていると思います。
3,実際にdxlibを動かしてみる
では、dxlibが使えるか確認するために、サンプルコードを動かしてみましょう。
今回は、test.cpp
を用意して以下の様に書いてください。(C言語の人はtest.c
にしてください)
#include "DxLib\DxLib.h"
// プログラムは WinMain から始まります
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1 ; // エラーが起きたら直ちに終了
}
DrawPixel( 320 , 240 , GetColor( 255,255,255 ) ) ; // 点を打つ
WaitKey() ; // キー入力待ち
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
上記は、画面が出てきて、何かしらのボタンを押すと画面が閉じるというコードです。
上記のコードを完成させたら、以下の様にコンパイルします。(C言語の人はg++
の所をgcc
に変えてください)
g++ -m32 -o test test.cpp -LC:\MinGW\lib\DxLib -DDX_GCC_COMPILE -DDX_NON_INLINE_ASM -lDxLib \
-lDxUseCLib \
-lDxDrawFunc \
-ljpeg \
-lpng \
-lzlib \
-ltiff \
-ltheora_static \
-lvorbis_static \
-lvorbisfile_static \
-logg_static \
-lbulletdynamics \
-lbulletcollision \
-lbulletmath \
-lopusfile \
-lopus \
-lsilk_common \
-lcelt \
上手く行くとtest.exe
と言うファイルが作成されるので、./test
で実行してみましょう。 これで上手くいくはず。