build_soda
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
build_soda [2025/02/12 08:55] – machiaworx | build_soda [2025/02/13 08:11] (現在) – machiaworx | ||
---|---|---|---|
行 12: | 行 12: | ||
===== 手順 ===== | ===== 手順 ===== | ||
- MSビルドツールのインストール | - MSビルドツールのインストール | ||
- | - sodaのソースコード、SDL周辺開発APIセットのダウンロード(SDL2、SDL2_image、SDL2_mixer)\\ SDL2/ | + | - sodaのソースコード、SDL周辺開発APIセットのダウンロード(SDL2、SDL2_image、SDL2_mixer)\\ SDL2/ |
- SDL2のインクルードファイルおよびライブラリファイルをビルドツールの読み込みフォルダに配置する。\\ ここで注意点は以下。(理由は後述) | - SDL2のインクルードファイルおよびライブラリファイルをビルドツールの読み込みフォルダに配置する。\\ ここで注意点は以下。(理由は後述) | ||
- clのパスが通ってるインクルードフォルダ内にSDL2フォルダを作成し、その中にSDL2のインクルードファイルを格納する | - clのパスが通ってるインクルードフォルダ内にSDL2フォルダを作成し、その中にSDL2のインクルードファイルを格納する | ||
行 19: | 行 19: | ||
- clのパスが通ってるライブラリフォルダ内「x86」フォルダもしくは「x64」フォルダに、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が付与されていないため改行が認識されない(本来はNG。後述)\\ テキストエディタで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 / |
===== 問題 ===== | ===== 問題 ===== | ||
- | * BOM封入によって、Assertのテストが通らなくなる事。(別の文字扱いになるんじゃないかと考える) | + | * Assertのテストが通らなくなる事。(別の文字扱いになるんじゃないかと考える) |
- | * 自分の環境では、あまりよろしくないけど該当部分のテストを除去した上でビルドしてる。 | + | |
- | * もしくは上記のBom封入によってエラーが出てくるのを許容するか。 | + |
build_soda.1739318138.txt.gz · 最終更新: 2025/02/12 08:55 by machiaworx