出力ファイルにフルパスが含まれるのを防ぐ

テクニカル・ノート 59374

アーキテクチャ:

All

コンポーネント:

general

更新日:

2018/09/04 7:20

はじめに

出力ファイルに、ソースファイルのフルパスが含まれています。これは期待する動作ではありません。

コメント

この問題の典型的な原因として考えられるのは、アプリケーションにおいてassertマクロが使用されており、このマクロによって__FILE__マクロが使用されていることが考えられます。__FILE__マクロは、現在のファイルのフルパスを出力します。

推奨方法

  • Assertを回避する- 条件コンパイルを行うことで、assertメッセージを発生させないようにできます。
    \arm\inc\c\assert.hというファイルでは、この方法を使用して、出力ファイル/出力イメージにassertメッセージが埋め込まれるのを防いでいます。
#ifdef NDEBUG
  #define assert(test) ((void)0)​
  • マクロにパスを含めない - 以下のコマンドラインオプションを使用します。
--no_path_in_file_macros

プロジェクト(Project) > オプション(Option) > C/C++コンパイラ(C/C++ compiler) > 追加オプション(Extra Options)で、このオプションを追加します。


全ての製品名は、それぞれの所有者の商標または登録商標です。

申し訳ございませんが、弊社サイトではInternet Explorerをサポートしていません。サイトをより快適にご利用いただくために、Chrome、Edge、Firefoxなどの最新ブラウザをお使いいただきますようお願いいたします。