7

CMakeで、すべての実行可能ファイルが特定のライブラリにリンクするように指定する方法はありますか?基本的に、すべての実行可能ファイルをtcmallocとプロファイラーにリンクさせたいです。-ltcmallocを指定するだけで、-lprofilerは適切な解決策ではありません。これは、CMakeにライブラリへのパスを移植可能な方法で見つけさせたいためです。

4

2 に答える 2

11

組み込み関数を独自の関数でオーバーライドできますadd_executable。これにより、必要なリンクの依存関係が常に追加されます。

macro (add_executable _name)
    # invoke built-in add_executable
    _add_executable(${ARGV})
    if (TARGET ${_name})
        target_link_libraries(${_name} tcmalloc profiler)
    endif()
endmacro()
于 2012-05-11T17:57:09.513 に答える
1

あなたはあなたのために仕事をするCMakeで関数/マクロを書くことができます。

function(setup name sources
add_executable(name sources)
target_link_library(name tcmalloc profiler)
endfunction(setup)
setup(foo foo.c)
setup(bar bar.c)

詳細については、ドキュメントを確認してください。

于 2012-05-11T17:11:42.357 に答える