これはコンパイラ固有のものである可能性があり、その場合、IAR EWARM 5.50 コンパイラ (STM32 チップ用のファームウェア開発) を使用しています。
私たちのプロジェクトは、最初にコンパイルする一連の C コード ライブラリと、その C コードをコンパイルしてからそれらのライブラリ (かなり標準的なもの) にリンクするメイン アプリケーションで構成されます。
しかし、16 進数エディターを使用して、生成されたライブラリ オブジェクト ファイルまたは最終的なアプリケーション バイナリを開くと、コンパイルされた C ファイルのファイル パスへのプレーン テキスト参照が出力バイナリ内に多数見つかります。(例: 「C:\Development\trunk\Common\Encryption\SHA_1.c」と表示されます)
これに関する2つの問題:
- ファイル パスを簡単に読み取れるようにする必要はありません。
- Cファイルが長いサブディレクトリにある場合、バイナリのサイズが大きくなります(バイナリには名前だけでなくフルパスが含まれています)...これは、量が限られているファームウェアを扱う場合に特に重要ですコードスペース (256KB)。
これについて何か考えはありますか?「デバッグ情報を削除する」など、コンパイラで考えられるすべてのスイッチを試しましたが、それらのパスはまだそこにあります。