標準コマンドを使用して実行可能ファイルを作成しています:
add_executable(MyExe a.c b.c)
CMAKE_EXE_LINKER_FLAGS
マップ ファイルを出力するように を調整していますが、動作します。
ただし、マップ ファイルを削除すると、インクリメンタル ビルドを実行してもマップ ファイルは再生成されません。マップ ファイルが MyExe に依存していることを cmake に表明していないため、これは理にかなっています。上記のシナリオでは、MyExe.map はターゲットでさえないため、cmake はそれが存在することさえ知りません。
カスタム ターゲットを作成しようとしましたが、マップ ファイルを再生成するカスタム コマンドを作成できませんadd_executable()
。次に、を使用しようとしましadd_dependencies()
たが、それはビルド順序にのみ影響するようです。
カスタム ターゲットをビルドするカスタム コマンドとしてリンカを明示的に再実行することもできますが、リンクには少し時間がかかるため、無駄に思えます。
add_executable に実行可能イメージ以外の出力があることを伝える何らかの方法が必要なようです。これを行う方法はありますか?
誰かが私を正しい方向に向けることができれば、私はそれを感謝します! 読んでくれてありがとう。