build_soda
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
build_soda [2025/02/11 19:38] – machiaworx | build_soda [2025/02/13 08:11] (現在) – machiaworx | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ===== 翻訳 ===== | ||
+ | * English page is under URL. | ||
+ | * https:// | ||
+ | |||
===== 概要 ===== | ===== 概要 ===== | ||
* MiniScriptを利用したゲームを作るためのフレームワーク(エンジンと言っていい)のSodaというアプリケーションがある。 | * MiniScriptを利用したゲームを作るためのフレームワーク(エンジンと言っていい)のSodaというアプリケーションがある。 | ||
行 8: | 行 12: | ||
===== 手順 ===== | ===== 手順 ===== | ||
- MSビルドツールのインストール | - MSビルドツールのインストール | ||
- | - sodaのソースコード、SDL周辺開発APIセットのダウンロード(SDL2、SDL2_image、SDL2_mixer)\\ soda: https:// | + | - sodaのソースコード、SDL周辺開発APIセットのダウンロード(SDL2、SDL2_image、SDL2_mixer)\\ SDL2/ |
- SDL2のインクルードファイルおよびライブラリファイルをビルドツールの読み込みフォルダに配置する。\\ ここで注意点は以下。(理由は後述) | - SDL2のインクルードファイルおよびライブラリファイルをビルドツールの読み込みフォルダに配置する。\\ ここで注意点は以下。(理由は後述) | ||
- clのパスが通ってるインクルードフォルダ内にSDL2フォルダを作成し、その中にSDL2のインクルードファイルを格納する | - clのパスが通ってるインクルードフォルダ内にSDL2フォルダを作成し、その中にSDL2のインクルードファイルを格納する | ||
- a.のSDL2フォルダの中にSDL2_image.hを格納する | - a.のSDL2フォルダの中にSDL2_image.hを格納する | ||
- a.のSDL2フォルダの中にSDL2_mixer.hを格納する | - a.のSDL2フォルダの中にSDL2_mixer.hを格納する | ||
- | - clのパスが通ってるライブラリフォルダ内直下に、SDL2/ | + | - clのパスが通ってるライブラリフォルダ内「x86」フォルダもしくは「x64」フォルダに、SDL2/ |
- ソースコードの修正(コミット B5294F6 を参照) | - ソースコードの修正(コミット B5294F6 を参照) | ||
- | - SDL_imageの読み込みフォルダ修正\\ これはSDL2_imageの読み込みが直読み込み前提になっているため。パスを指定しているならこhの記述でもいいが、「SDL2_image.hの方が、SDL2.hが同じフォルダにある前提で読み込もうとする」ため、これを優先してSODA側のソースコードを修正する。\\ SdlUtils.hの13行目、「# | + | - SDL_imageの読み込みフォルダ修正\\ これはSDL2_imageの読み込みが直読み込み前提になっているため。パスを指定しているならこhの記述でもいいが、「SDL2_image.hの方が、SDL2.hが同じフォルダにある前提で読み込もうとする」ため、これを優先してSODA側のソースコードを修正する。\\ SdlUtils.hの13行目、「# |
- PixelDisplayの除算について計算がおかしいため修正\\ PixelDisplay.cppの90行目、「if (denom == 0.0f) return 0.0f ; | - PixelDisplayの除算について計算がおかしいため修正\\ PixelDisplay.cppの90行目、「if (denom == 0.0f) return 0.0f ; | ||
- | - main関数の修正\\ Windows環境においては、どうもmain関数の形式が別途定められているようで、第2引数がconstだとその形式と相違があるため、SDL関連のライブラリのリンクができない。関数の定義について変更の必要あり。ただMac/ | + | - main関数の修正\\ Windows環境においては、どうもmain関数の形式が別途定められているようで、第2引数がconstだとその形式と相違があるため、SDL関連のライブラリのリンクができない。関数の定義について変更の必要あり。ただMac/ |
- | - ソースコードにマルチバイト記述がある場合、BOMが付与されていないため改行が認識されない\\ テキストエディタでSimpleString.cppを開き、BOMを付与して保存する。\\ 参考:https:// | + | - 加えてmain関数内で参照している箇所があるのでこれを修正。\\ main.cpp内324行目、“void PrepareShellArgs(int argc, char* argv[], int startingAt) {“に修正。\\ 参考:https:// |
- VS の開発者コマンド プロンプトを実行します。\\ 64bitのビルドを行う場合、「x64 NativeToolsCommandPrompt」を実行するのが早い。\\ 以下コマンドを入力する。 | - VS の開発者コマンド プロンプトを実行します。\\ 64bitのビルドを行う場合、「x64 NativeToolsCommandPrompt」を実行するのが早い。\\ 以下コマンドを入力する。 | ||
cd soda | cd soda | ||
cd src | cd src | ||
- | cl -I . -I MiniScript -I compiledData -I SDL2 /EHsc /wd4068 *.cpp MiniScript/ | + | cl -I . -I MiniScript -I compiledData -I SDL2 /EHsc / |
+ | ===== 問題 ===== | ||
+ | * Assertのテストが通らなくなる事。(別の文字扱いになるんじゃないかと考える) |
build_soda.1739270299.txt.gz · 最終更新: 2025/02/11 19:38 by machiaworx