タイトルの通りですが、win32プロジェクトで、あらかじめDLLをgen-libsコマンドで作成し、コンパイルの時間を高速化します。
2019年9月10日追記
Cocos2d-x 3.17.1 以降だと lib-genコマンドが削除されてしまったので以降のバージョンでDLLを作る方法は以下を先に参照してください。途中でこの記事に戻ってきますがDLLを作成するところまでを以下記事内で説明しています。
takachan.hatenablog.com
iOSだとスタティックライブラリを使用して高速化するあたりの話と同じです。
ちなみに、元ネタは以下のフォーラムです。が、このforumプロジェクトのファイルを手で書き直せなどなかなか難易度が高いのでVisualStudio(GUI)上で作り方を説明したいと思います。
ちょっと長いですが、最後までお付き合い頂けたらと思います。
開発環境
開発環境は以下の通りです。
Item | Value |
---|---|
OS | Windows10 |
IDE | VisualStudio2015 Community版 |
Cocos2d-x | 3.11.1 |
前提条件
Cocos2d-xは以下の通りインストール済みとします。
D:\ProgramFiles\Cocos\cocos2d-x-3.11.1
環境変数は上記パスでsetup.pyを使用したので以下の通りになっています。
[PATH]
D:\ProgramFiles\Cocos\cocos2d-x-3.11.1\templates
D:\ProgramFiles\Cocos
D:\ProgramFiles\Cocos\cocos2d-x-3.11.1\tools\cocos2d-console\bin
[COCOS_CONSOLE_ROOT]
D:\ProgramFiles\Cocos\cocos2d-x-3.11.1\tools\cocos2d-console\bin
[COCOS_TEMPLATES_ROOT]
D:\ProgramFiles\Cocos\cocos2d-x-3.11.1\templates
[COCOS_X_ROOT]
D:\ProgramFiles\Cocos
pre-builtコマンドの実行
早速始めたいと思います。
cdコマンドでカレントディレクトリを移動します。
cd D:\ProgramFiles\Cocos\cocos2d-x-3.11.1
まずはコマンドプロンプトで以下のコマンドを打ち込んで実行します。
cocos gen-libs -p win32 --vs 2015 -m debug
かなり時間がかかるので完了までしばらく待ちます。
完了すると以下のパスにLibやDLLが生成されているので中身を確認します。
D:\ProgramFiles\Cocos\cocos2d-x-3.11.1\prebuilt
これを以下のフォルダを作成して中身をすべて移動します。
D:\ProgramFiles\Cocos\cocos2d-x-3.11.1\prebuilt\win32\Debug
移動後に以下ファイルから_2015を削除します。(Cocos2d-x 3.17以降からサフィックスが付かなくなったみたいなので以下作業不要かも
libcocos2d_2015.dll → libcocos2d.dll
libcocos2d_2015.lib → libcocos2d.lib
libbox2d_2015.lib → libbox2d.lib
libSpine_2015.lib → libSpine.lib
プロジェクトの作成
すでに作成済みのであれば不要ですが、cocos newコマンドを使ってプロジェクトを新規に作成します。
cocos new Sample -d D:\Development -p com.sample -l cpp
VisualStudioの起動
Cocosプロジェクトのwin32プロジェクトを起動します。
ソリューションファイルを選択して開きます。
起動するとこんな感じになっていると思います。
プロパティシートの入れ替え
プロパティファイルの入れ替えを行います。
今は表示するにもわかりにくい位置にあるのですが、まずプロパティマネージャーウインドウを表示します。
画面上部のツールバーから以下を選択します。
表示 > その他のウインドウ > プロパティマネージャー
プロパティマネージャウインドウから作成したプロジェクトのDebug側のプロパティを表示します。
ここでツリーに表示されている以下を削除します。
"cocos2d_headers"
"cocos2dx"
新しいプロパティシートを追加します。
Debugを右クリックして「既存のプロパティ シートの追加」を選択します。
ファイル選択ダイアログが出るので以下のパスを指定します。(複数は選べないので2回操作します)
D:\ProgramFiles\Cocos\cocos2d-x-3.11.1\cocos\2d\cocos2d_headerd.proprs
D:\ProgramFiles\Cocos\cocos2d-x-3.11.1\cocos\2d\cocos2dx.props
追加が完了すると以下のような表示になります。
ライブラリパスの変更
次はライブラリパスの変更です。
Sampleプロジェクトのプロパティを選択してプロパティダイアログを表示します。
ダイアログの右側のツリーから
VC++ ディレクトリ
を選択し、右側のリストの
「ライブラリディレクトリ」
を選択します。
欄の右側の編集ボタンを押して編集ダイアログを表示しDLLがあるフォルダパスを指定します。
入力が完了すると以下のようになります。
依存ファイルの追加
次に依存ファイルの追加を行います。
同じプロパティダイアログの右側ツリーから
リンカー > 入力
を選択し、右側リストの
「追加の依存ファイル」
を選択します。また、右側の編集ボタンを押してダイアログから追加の依存ファイルに
libcocos2d.lib
を入力します。
入力したら[OK]を押して元の画面に戻ると以下のようになります。
デバッグ環境(環境変数)の追加
次に環境変数の追加の設定を行います。
同じプロパティダイアログの右側ツリーから
デバッグ
を選択し、右側リストの
環境
へ以下の値をそのまま入力します。
PATH=D:\ProgramFiles\Cocos\cocos2d-x-3.11.1\prebuilt\win32\Debug;%PATH%
(必ず"PATH="から入力してください。"d:\"以降だけ入力しても動きません)
入力すると以下のようになります。
ソリューションから不要なプロジェクトの除去
ソリューションから以下、不要なプロジェクトを削除します。
libbox2d
libbullet
libcocos2d
librecast
libSpine
削除すると以下の通りになります。
動作確認
以上で、プロジェクトの設定は完了しましたので動作を確認したいと思います。
"Sample"をスタートアッププロジェクトに設定して、画面上部のローカル Windows デバッガー... を選択します。
以下の通り画面が表示されれば成功です。
これで、ビルドがかなり早くなったと思います。
お疲れ様でした。