(toppers-users 1728) Re: configuration ファイル:xxx.cfgの内容が反映されない理由?
SHUKUGUCHI Masahiro
ms89019 @ mms.co.jp
2004年 11月 3日 (水) 13:30:29 JST
宿口です。
# 乗りかかった船なので。。。
# 外していたらごめんなさい。
リリースに含まれる、sample に別の.cfg を組込みには、カスタムビルドの設定が
要ります。(sample1.cfgと同じ内容で良いと思います。)これは、該当する.cfg
ファイルをコンフィグレーターを通して、kernel_cfg.c および kernel_id.h を
生成させるものです。
設定方法は次の通りです。
・ue_sample.cfg 選択 → 右クリック → [設定] 選択
・表示されたダイアログの[カスタムビルド]のタグを選択
・[常にカスタムビルドを使用する]をチェックする。
・カスタムビルドの[コマンド]に
cd $(InputDir)
cl /E /I "../../kernel" /I "../../include" /I "../../config/windows" $(InputName).cfg | ..\..\cfg\cfg.exe -s -c -v -obj -lj -cpu windows -system msvc
を
[出力]に
kernel_cfg.c
kernel_id.h
を入力してください。(sample1.cfg 該当する部分をコピー、ペーストする
と良いです。)
と偉そうに書きましたが
~\doc\windows.txt の 520〜547行あたりにその旨記載されています。
−−−−−
上記設定をせずに上原さんの方法を実行(リビルド)すると、これはコンフィグ
レータが動かないので、ここでは ue_sample1.cfg が kernel_cfg.c および
kernel_id.h に変換されません。結果として ue_sample1.cfg の内容が反映され
ないことになります。
リビルドすると、VC++ は VC++が知っている中間ファイルを削除して、ビルドを
実行します。このとき、kernel_cfg.c の中間ファイルは削除されますが、
kernel_cfg.c は残ったままです。新たな .cfg ファイルをカスタムビルド(
kernel_cfg.c などの生成)しないと、前に作成された kernel_cfg.c などを
コンパイル対象としてしまい、その結果、新たな .cfg ファイルの内容が反映
されません。
TOPPERS にとってみれば、kernel_cfg.c や kernel_id.h は中間ファイルなので
すが、VC++ にとってみれば、ソースファイルという違いが思い違いを誘発して
いるようです。
宿口雅弘