コンテキストCMakeのが唯一の `add_subdirectoryではなく、ルートプロジェクトに` find_package(Qt5Widgets REQUIRED)を受け入れて
、それは次のように親プロジェクトに含まれた場合にのみ問題なくQt
テストプロジェクトをビルドする:
RootProject
+--CMakeLists.txt // Parent CMake
+--TestQt
+--testwidget.cpp
+--testwidget.hpp // Empty class, just extends QWidget
+--CMakeLists.txt // My Test Project CMake
親プロジェクトだけ含まれています
add_subdirectory("TestQt")
CMakeLists.txtでCMakeのエラー:16(find_package):CMAKE_MODULE_PATHに 「FindQt5Widgets.cmake」を提供しないことによりできるだけ早く私は「TestQt」プロジェクトをスタンドアロンで構築しようとして、それだけのようなエラーを返しますこのプロジェクトは CMakeに、 "Qt5Widgets"、 で提供されているパッケージ構成ファイルを検索するよう依頼しましたが、CMakeは見つけませんでした。
Qt5WidgetsConfig.cmake/ qt5widgets-config.cmake
「Qt5Widgets」のインストール接頭辞を追加します。
は、次の名前のいずれかで「Qt5Widgets」 が提供するパッケージ構成ファイルが見つかりませんでした。 CMAKE_PREFIX_PATHまたは に上記の ファイルのいずれかを含むディレクトリに "Qt5Widgets_DIR"を設定します。 「Qt5Widgets」が個別の開発パッケージまたは SDKを提供する場合は、SDKがインストールされていることを確認してください。
CMAKE_PREFIX_PATH
は両方とも空です。
現在
が間違っている/何が欠けている少し古いCMAKE 3.0.2
質問でDebianを使用して?
CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Qt5Widgets REQUIRED)
include_directories(${Qt5Widgets_INCLUDE_DIRS})
add_definitions(${Qt5Widgets_DEFINITIONS})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
# Project name
project ("TestQt")
add_executable(UnitTest_TestQt UnitTest.cpp testwidget.cpp)
target_link_libraries(UnitTest_TestQt Qt5::Widgets)
FindQt5Widgets.cmakeがインストールされている場所を検索し、環境変数 'CMAKE_PREFIX_PATH'と' Qt5Widgets_DIR'の内容を確認してください。 – Amadeus
Qt5Widgets_DIRとの良いキャッチ:/ usr/lib/x86_64-linux-gnu/cmake/Qt5Widgets'を実行しますが、スタンドアローンでは 'Qt5Widgets_DIR-NOTFOUND'となります。あなたはなぜスタンドアロンに設定されていないのか分かりますか? –
私はこの問題を調査しています。非常に奇妙なようです。 –