加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – CMAKE_PREFIX_PATH无法帮助CMake查找Qt5

发布时间:2020-12-14 00:54:23 所属栏目:Linux 来源:网络整理
导读:从这里: 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
从这里: 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",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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读