15

標準コマンドを使用して実行可能ファイルを作成しています:

add_executable(MyExe a.c b.c)

CMAKE_EXE_LINKER_FLAGSマップ ファイルを出力するように を調整していますが、動作します。

ただし、マップ ファイルを削除すると、インクリメンタル ビルドを実行してもマップ ファイルは再生成されません。マップ ファイルが MyExe に依存していることを cmake に表明していないため、これは理にかなっています。上記のシナリオでは、MyExe.map はターゲットでさえないため、cmake はそれが存在することさえ知りません。

カスタム ターゲットを作成しようとしましたが、マップ ファイルを再生成するカスタム コマンドを作成できませんadd_executable()。次に、を使用しようとしましadd_dependencies()たが、それはビルド順序にのみ影響するようです。

カスタム ターゲットをビルドするカスタム コマンドとしてリンカを明示的に再実行することもできますが、リンクには少し時間がかかるため、無駄に思えます。

add_executable に実行可能イメージ以外の出力があることを伝える何らかの方法が必要なようです。これを行う方法はありますか?

誰かが私を正しい方向に向けることができれば、私はそれを感謝します! 読んでくれてありがとう。

4

1 に答える 1