前提としてWindowsOSであり、CLionとMinGWはインストール済みとします。(cmakeはCLionインストール時に一緒に入ります)
私の環境は
- Windows 8.1
- CLion 1.0
- MinGW 不明 g++は4.8.1でした
- DxLib 3.13d でした。CLionは
から落とせます。MinGWは
から落とせます。インストール方法はググれば出てくるのでそちらでお願いします。MinGWはパスを通しておいて下さい。cmd起動してgcc --version
が動けばOKです。
1.DXライブラリをダウンロードする
http://homepage2.nifty.com/natupaji/DxLib/dxdload.html から、上から3つ目のGnu C++用と書かれたDXライブラリを任意のフォルダにダウンロードします。
2.CLionで新規プロジェクトを作成する
CLionを起動し、トップメニューからFile -> New Projectを選択し、任意のタイトル、任意のフォルダを指定して、プロジェクトを作成します。今回はDXSampleというプロジェクトを作成しました。
3.DXライブラリをプロジェクトフォルダ以下にコピーする
1でダウンロードしたDXライブラリをインストールすると、DxLib_GCCというフォルダが出来ます。そのフォルダの中に「プロジェクトに追加すべきファイル_GCC(MinGW)用」というフォルダがあり、その中に4_8_1などのフォルダが有ります。これはMinGWのgccのバージョンに対応しているので、あなたの環境のgcc(gcc --version
で確認できるバージョン)と一致したフォルダを新規作成したCLionプロジェクトフォルダにフォルダごとコピーします。今回は私の環境のgccが4.8.1なので4_8_1フォルダを利用します。以下4_8_1と書かれた箇所はそれぞれの環境ごとに適宜読み換えて下さい。
元々CLionのプロジェクトファイルには.ideaというフォルダと、CMakeLists.txtとmain.cppが自動生成されています。ここに4_8_1を置きます。置いたら4_8_1という名前をdxlibという名前に変更します(日本語含まなければ自由だと思います)
4.CMakeLists.txtを編集する
プロジェクト作成時のデフォルトのCMakeLists.txtは以下のようになっています。(CMakeのバージョンとプロジェクト名は適宜置き換えて読んで下さい)
cmake_minimum_required(VERSION 3.1) project(DXSample) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(SOURCE_FILES main.cpp) add_executable(DXSample ${SOURCE_FILES})
-std=c++11
はC++11を使うなら付ける必要があり、使わないのなら消しても構いません。
まず、add_executable
の前に
include_directories(./dxlib) link_directories(./dxlib)
を追加します。(あなたがリネームしたフォルダ名にして下さい。今回の例ではdxlib
というだけです)
追加後のCMakeLists.txtは以下のようになります
cmake_minimum_required(VERSION 3.1) project(DXSample) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(SOURCE_FILES main.cpp) include_directories(./dxlib) link_directories(./dxlib) add_executable(DXSample ${SOURCE_FILES})
次に、add_executable
の後に以下を追記します
target_link_libraries( DXSample DxLib DxUseCLib DxDrawFunc jpeg png zlib tiff theora_static vorbis_static vorbisfile_static ogg_static bulletdynamics bulletcollision bulletmath )
これは./dxlib
以下のlib何とか.a
をリンクしています。
最終的なCMakeLists.txtは以下になります
cmake_minimum_required(VERSION 3.1) project(DXSample) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(SOURCE_FILES main.cpp) include_directories(./dxlib) link_directories(./dxlib) add_executable(DXSample ${SOURCE_FILES}) target_link_libraries( DXSample DxLib DxUseCLib DxDrawFunc jpeg png zlib tiff theora_static vorbis_static vorbisfile_static ogg_static bulletdynamics bulletcollision bulletmath )
CMakeLists.txtを編集した際に、CMake project needs to reloaded
と出た場合はReload changes
をクリックして更新処理を行って下さい。
5.main.cppを編集する
プロジェクト作成時には、デフォルトで以下の様なコードが書かれていると思います。
#include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; }
これを全て消し、以下のコードにしてみてください。
#include "dxlib/DxLib.h" int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { ChangeWindowMode(TRUE); if( DxLib_Init() == -1) { return -1 ; } DrawBox(0, 0, 200, 100, (int) GetColor(255, 0, 0), TRUE); WaitKey(); DxLib_End(); return 0; }
くどいようですが、#include "dxlib/Dxlib,h"
のdxlib
は適宜読み替えて下さい。
もし、ここでソースコードが赤文字まみれになった場合は、CLionのメニューからView -> CMake
を選択し、出てきたビューの更新ボタン(青色の円になった矢印)をクリックしてプロジェクトの更新を行って下さい。
ソースコードの赤文字が解消されてエラーが消えたら、CLionメニューのRun -> Run...
を実行します。どのプロジェクトを実行するか聞かれた場合は、Allではなく、このプロジェクトを選択しましょう。これでコンパイルとリンクが成功し、ウインドウが表示されれば成功です!