Everything

 

-merge_files


コンパイル・オプション / 最適化オプション

[指定形式]

-merge_files

[詳細説明]

-

複数のCソースファイルをマージしてコンパイルすることにより、1つのオブジェクトファイルを出力します。

-

outputオプションでファイル名を指定した場合は指定した名前のファイルを生成し、指定しなかった場合は先頭に入力したソースファイル名に出力形式に応じた拡張子をつけたファイルを生成します。

-

outputオプションで出力形式にsrcまたはobjを指定した場合は、他の入力したソースファイル名に出力形式に応じた拡張子をつけた空ファイルを生成します。

[例]

ccrx -merge_files -output=obj=files.obj file1.c file2.c file3.c

files.objにオブジェクトを生成します。また、空ファイルfile1.obj、file2.obj、file3.objを生成します。

[備考]

-

コンパイル対象ファイルが1つの場合は、本オプションは無効になります。

-

outputオプションで出力形式にprepを指定した場合、本オプションは無効になります。

-

本オプションとinlineオプションを同時に指定した場合、ファイル間インライン展開も行うことができます。

-

C++またはEC++でコンパイルするコンパイル対象ファイルに対しては、本オプションは無効になります。

-

プログラムにstatic変数、static関数を含む場合、次の制限があります。

-

デバッガのウォッチウィンドウで、ファイル間で同じ名前のstatic変数を表示する場合は、変数名だけでなくファイル名も指定してください。ファイル名がないと変数が特定できず表示内容が不定となります。

-

ファイル間で同じ名前のstatic関数があり、関数が属すセクションをrlinkでオーバレイ化した場合、デバッガのオーバレイセクションの優先表示機能は使用できません。

-

リンクマップファイル(.map)には、static変数とstatic関数は、元の名前では表示されず、代わりにコンパイラで変換した名前が表示されます。

-

ソースファイル間で、同じ変数の宣言内容(型指定子など)が異なる場合、コンパイル時にエラーとなる場合があります。

-

本オプションを指定して生成したオブジェクト・ファイルをリンクする際にリンク・オプション-delete,
-rename, -replace のいずれかを指定した場合、動作は保証しません。