问题描述
在我的计算机(Ubuntu-Gnome)上,安装了两个Qt版本。一个带有程序包管理器(5.x),另一个带有 / opt / Qt (5.9)手动。
On my computer (Ubuntu-Gnome) are two Qt-versions installed. One with the package manager (5.x) and one manually to /opt/Qt (5.9).
对于一个项目,我需要在CMake中使用 / opt / Qt 安装。但是 find_package(需要Qt5Core 5.9组件)
找不到正确的安装:
For one project I need to use the /opt/Qt-installation with CMake. But find_package(Qt5Core 5.9 COMPONENTS CORE REQUIRED)
does not find the correct installation:
Could not find a configuration file for package "Qt5Core" that is
compatible with requested version "5.9".
The following configuration files were considered but not accepted:
/usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreConfig.cmake, version: 5.7.1
我尝试设置 CMAKE_PREFIX_PATH
和 CMAKE_MODULE_PATH
将具有所有路径变体的搜索路径添加到CMake,但根本不起作用。
I tried to set CMAKE_PREFIX_PATH
and CMAKE_MODULE_PATH
to add a search path to CMake with all variants of paths but it does not work at all.
我该如何正确地将搜索路径设置为第二个安装的 / opt / Qt / ?
How can I correctly set the search path to the second installation at /opt/Qt/?
更新以便@Florian输入
Updates in order to @Florian input
这有效:
find_package(
Qt5Core 5.9
COMPONENTS
Core
REQUIRED
)
与
cmake -DQt5_DIR:PATH=/opt/Qt/5.9.2/gcc_64/lib/cmake/Qt5Core
但在这种情况下,我只找到了QT5Core。
but in this case I found only QT5Core. With that it seems to work for all components as well:
find_package(
Qt5 5.9
COMPONENTS
Core
REQUIRED
)
连同
cmake -DQt5_DIR:PATH=/opt/Qt/5.9.2/gcc_64/lib/cmake/Qt5
第二次编辑
2nd Edit
避免始终将完整路径放在呼叫中,我将此添加到我的 CMakeLists.txt 中:
To avoid to always put the the full path in the call I add this to the my CMakeLists.txt:
set(QT_INSTALL_PATH /opt/Qt)
file( GLOB_RECURSE sres ${QT_INSTALL_PATH}/*/Qt5Config.cmake )
get_filename_component( Qt5_DIR ${sres} DIRECTORY )
此后工作正常:
find_package(
Qt5 5.9
COMPONENTS
Core
Network
REQUIRED
)
推荐答案
使用 cmake -DQt5_DIR:PATH = / opt / Qt5 / 5.9.2 / gcc_64 / lib / cmake / Qt5
这篇关于CMake:安装两个Qt版本时查找Qt软件包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!