1. ホーム
  2. c++

[解決済み】CMakeの出力を'bin'ディレクトリにする方法は?

2022-04-03 01:17:56

質問

現在、プラグイン構造を持つプロジェクトを構築しています。CMakeを使用してプロジェクトをコンパイルしています。プラグインは別々のディレクトリにコンパイルされます。私の問題は、CMakeがバイナリとプラグイン、ダイナミックライブラリをソースのディレクトリ構造でコンパイルして保存することです。どのように私はCMakeにファイルを保存させるのですか? ./bin ディレクトリに移動します。

解決方法は?

Olegさんの回答のように、正しく設定すべき変数は cmake_runtime_output_directoryを指定します。 . ルートのCMakeLists.txtに以下のように記述しています。

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

また、ターゲットごとに出力ディレクトリを指定することも可能です。

set_target_properties( targets...
    PROPERTIES
    ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
    LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)

どちらの場合も _[CONFIG] を変数名/プロパティ名に追加して、出力ディレクトリを特定の構成に適用させることができます (構成の標準値は DEBUG , RELEASE , MINSIZERELRELWITHDEBINFO ).