各サブディレクトリにすべてのコンポーネントを追加することなく、サブディレクトリでQt5ライブラリを使用します。親のCMakeListsでは、ライブラリが存在し、Qt5_DIR
変数が設定されていることを確認するためにfind_package(Qt5)
を使用します。例:サブディレクトリ私はQt5::Xml
コンポーネントを使用したいexec1
でCmakeとQt5:異なるサブディレクトリでQt5の異なるコンポーネントを使用する
CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
find_package(Qt5 COMPONENTS Core REQUIRED)
add_subdirectory(exec1)
add_subdirectory(exec2)
。私がCMakeを理解する限り、Qt5_DIR
変数はサブディレクトリに渡されます。したがって、もう一度を使用する必要はありません。この仮定は正しいですか?例:第二のサブディレクトリexec2
で
EXEC1/CMakeLists.txt
project(exec1)
set(SRC exec1.cpp)
set(HDR exec1.h)
add_executable(exec1 ${SRC} ${HDR})
target_link_libraries(exec1 Qt5::Core Qt5::Xml)
私はQt5の他のコンポーネントを追加します。例:私は、各サブプロジェクトのために一部のコンポーネントのみを選択するのではなく、親CMakeLists.txtのすべてのコンポーネントを追加する場合
exec2/
project(exec2)
set(SRC exec2.cpp)
set(HDR exec2.h)
add_executable(exec2 ${SRC} ${HDR})
target_link_libraries(exec2 Qt5::Core Qt5::Websockets)
CMakeLists.txtは、それがどんな違いがありますか? 他のサブディレクトリに影響を与えずにサブディレクトリ内のQt5コンポーネントを交換できるように、このケースをどのように処理しますか? 親のCMakeLists.txtで1回使用するのではなく、各サブディレクトリにfind_package
を追加する方が便利ですか?
ご意見やご感想はありがとうございます。
「QT5」ではなく「Qt5」であることに注意してください。これは、大部分のLinuxのように、大文字と小文字を区別するファイルシステムに違いがあります。 – ComicSansMS
この提案をありがとう。私は質問でそれを変更しました。 – KabCode