コンテンツ
CMA がリターンコード 19 で終了する原因として次のことが考えられます。
- 『1次解析』でエラーが発生している
- お客様定義のヘッダファイルに対する出力を抑止(-q オプション)している
- main() が複数あるなど関係のないモジュールを含めて CMA を実施している
- メモリ不足が発生している
まずは 1 ~3 に該当していないか確認ください。
- 1次解析でエラーが発生している場合
必ず先に1次解析のエラーを解消する必要があります。CMA を実施せずに解析し最初に発生したエラーから順に解消します。
『解析エラーが発生した場合』をご覧ください。 - お客様定義のヘッダファイルに対する出力を抑止(-q オプション)している場合
抑止せずに1次解析からお試しください。
ヘッダが抑止されると、定義、関係、メトリックスデータなどが1次解析の結果から欠落します。
CMA は1次解析の結果を利用して実施されるため、1次解析の結果が欠落していることが原因で CMA に失敗する可能性があります。
また 『CMA の警告メッセージ』 が誤って出力される/されないという問題や CMA によって計測されるメトリックスの値が不正になる恐れがあります。
同じ理由により、プロジェクトから一部のコードを取り除かないことも重要です。
ただし、システムヘッダからお客様のコードに戻されるような呼び出しはないため、コンパイラのシステムヘッダを抑止しても問題は起こりません。 - main() が複数あるなど関係のないモジュールを含めて CMA を実施している場合
CMA の実施範囲を確認ください。CMA はEXEやDLLを作成するためにリンクするファイル同士に対して行うようにしてください。 - 1~3 に該当しない場合
メモリ不足が考えられます。『推奨スペック』を確認ください。
・QAC 8.1.1 以前 / QAC++ 3.0 以前のバージョンをお使いの場合
これらのバージョンは 32ビットアプリケーションであるため、ひとつのプロセス(CMA を実施する pal という名称のプロセス)が使用可能なメモリが Windows では 2GB、Linux では 3GB という制限があります。CMA 実行時に pal が使用するメモリがこの値になっていないか確認ください。
なお Windows 版 QAC 7.2.3 / 8.0 / 8.1.1 については64ビット版の CMA (RCMA) を用意しております。ご希望でしたら弊社サポート ( ss_support@toyo.co.jp ) へお問い合わせください。