ここから: https://stackoverflow.com/a/28327499/462608
私はこれを試しました:
cmake_minimum_required(VERSION 2.8.12)
project(qtquick_hello_cmake)
set(CMAKE_PREFIX_PATH "/opt/Qt5.9.1/5.9.1/")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
find_package(Qt5 COMPONENTS Quick Core REQUIRED)
qt5_add_resources(RESOURCES qml.qrc)
add_executable(${PROJECT_NAME} "main.cpp" "qml.qrc")
qt5_use_modules(${PROJECT_NAME} Quick Core)
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Quick)
ここにcmake .
の出力があります
:~/junk/qtquick_hello_cmake$ cmake .
CMake Error at CMakeLists.txt:11 (find_package):
By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Qt5", but
CMake did not find one.
Could not find a package configuration file provided by "Qt5" with any of
the following names:
Qt5Config.cmake
qt5-config.cmake
Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
to a directory containing one of the above files. If "Qt5" provides a
separate development package or SDK, be sure it has been installed.
-- Configuring incomplete, errors occurred!
See also "/home/.../junk/qtquick_hello_cmake/CMakeFiles/CMakeOutput.log".
これは、/opt/Qt5.9.1/
が存在することを示すためです。
:~/junk/qtquick_hello_cmake$ cd /opt/Qt5.9.1/5.9.1/
:/opt/Qt5.9.1/5.9.1$ ls
Android_armv7 Android_x86 gcc_64 Src
ここで-DCMAKEオプションを使用してcmakeを実行しますが、出力は同じです:
:~/junk/qtquick_hello_cmake$ cmake -DCMAKE_PREFIX_PATH=/opt/Qt5.9.1/5.9.1/ -DWITH_QT5=1 .
CMake Error at CMakeLists.txt:11 (find_package):
By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Qt5", but
CMake did not find one.
Could not find a package configuration file provided by "Qt5" with any of
the following names:
Qt5Config.cmake
qt5-config.cmake
Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
to a directory containing one of the above files. If "Qt5" provides a
separate development package or SDK, be sure it has been installed.
-- Configuring incomplete, errors occurred!
See also "/home/.../junk/qtquick_hello_cmake/CMakeFiles/CMakeOutput.log".
ディレクトリの内容:
:~/junk/qtquick_hello_cmake$ ls
CMakeCache.txt CMakeFiles CMakeLists.txt main.cpp main.qml qml.qrc
次の不足しているパッケージをインストールしました。
Sudo apt-get install qtbase5-dev
Sudo apt-get install qtdeclarative5-dev
あらゆる種類のプレフィックスを添付する必要はありません。
:~/junk/qtquick_hello_cmake$ cat CMakeLists.txt
cmake_minimum_required(VERSION 2.8.12)
project(qtquick_hello_cmake)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
find_package(Qt5 COMPONENTS Quick Core REQUIRED)
qt5_add_resources(RESOURCES qml.qrc)
add_executable(${PROJECT_NAME} "main.cpp" "qml.qrc")
qt5_use_modules(${PROJECT_NAME} Quick Core)
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Quick)
:~/junk/qtquick_hello_cmake$ ls
build CMakeLists.txt main.cpp main.qml qml.qrc
:~/junk/qtquick_hello_cmake$ cd build/
:~/junk/qtquick_hello_cmake/build$ rm -rf *
:~/junk/qtquick_hello_cmake/build$ cmake ../
-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/.../junk/qtquick_hello_cmake/build
エラーはなくなりました。
おかげで:
https://answers.ros.org/question/236324/could-not-find-a-package-configuration-file-provided-by-qt5widgets/
https://askubuntu.com/questions/508503/whats-the-development-package-for-qt5-in-14-04
最近この問題に遭遇し、このエラーを生成したCMakeLists.txtにこれを追加することでこれを解決しました。
set(Qt5_DIR "*PATH TO YOUR QT QT5CONFIG FILE HERE*" CACHE PATH "Initial cahe" FORCE)
失敗したfind_package
および設定CMAKE_PREFIX_PATH変数に関するCMakeエラーメッセージ
「Qt5」のインストールプレフィックスをCMAKE_PREFIX_PATHに追加します
なんとなく誤解を招く。 「インストールプレフィックス」についてのみ説明しますが、このインストールでは、まだQt5Config.cmake
またはqt5-config.cmake
ファイルをfind_package
で検出できるように含めるために必須を使用しています。
しかし、メッセージ
「Qt5」が個別の開発パッケージまたはSDKを提供する場合は、インストールされていることを確認してください。
明確です:
必要な設定ファイルを含む開発パッケージをインストールする必要があります。
上記のすべては、「検索」スクリプトが提供されている場合、find_package
の[〜#〜] config [〜#〜]モードにのみ適用されます。 CMakeでも、このコマンドを使用するCMakeプロジェクトでもありません。