【发布时间】:2020-04-10 04:31:10
【问题描述】:
我有以下设置:
$ qmake --version
QMake version 3.1
Using Qt version 5.9.5
我正在使用 CMake 和以下相关说明(为您提供上下文):
set(CMAKE_PREFIX_PATH /usr/lib/qt5/bin/)
if(CMAKE_VERSION VERSION_LESS "3.7.0")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
endif()
set(CMAKE_MODULE_PATH /usr/lib/qt5)
# @see: https://stackoverflow.com/questions/51994603/cmake-qt5-undefined-reference-to-qprinterqprinterqprinterprintermode
SET(QT5_MODULES Core Widgets PrintSupport)
find_package(Qt5 COMPONENTS ${QT5_MODULES} REQUIRED)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(HW_GUI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/gui)
# include_directories(${HW_HEADER_DIR})
set(CMAKE_AUTOUIC ON)
...
核心部分是
SET(QT5_MODULES Core Widgets PrintSupport)
find_package(Qt5 COMPONENTS ${QT5_MODULES} REQUIRED)
现在,当我将Quick 或QuickControls2 添加到QT5_MODULES 中时,CMake 找不到这些,
我在 cmake-config 步骤中看到了这个错误:
/usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:28 处的 CMake 错误 (find_package): 找不到提供的包配置文件 通过具有以下任何名称的“Qt5Quick”:
Qt5QuickConfig.cmake qt5quick-config.cmake
现在,不要让您感到困惑,/usr/lib/x86_64-linux-gnu/qt5/bin 似乎是一个符号链接
到/usr/lib/qt5,我已经像这样检查过:
$ ls -l /usr/lib/x86_64-linux-gnu/qt5/bin/
total 0
lrwxrwxrwx 1 root root 33 Oct 30 18:00 fixqt4headers.pl -> ../../../qt5/bin/fixqt4headers.pl
lrwxrwxrwx 1 root root 20 Oct 30 18:00 moc -> ../../../qt5/bin/moc
lrwxrwxrwx 1 root root 29 Oct 30 18:00 qdbuscpp2xml -> ../../../qt5/bin/qdbuscpp2xml
lrwxrwxrwx 1 root root 29 Oct 30 18:00 qdbusxml2cpp -> ../../../qt5/bin/qdbusxml2cpp
如何修复此错误并找到Quick 模块?它有什么特别之处——我可以加载其他模块。
【问题讨论】: