CMake:安装两个Qt版本时找到Qt包

时间:2017-10-29 18:40:07

标签: qt cmake

在我的电脑(Ubuntu-Gnome)上安装了两个Qt版本。一个包管理器(5.x),一个手动到 / opt / Qt (5.9)。

对于一个项目,我需要使用CMake的 / opt / Qt 安装。但find_package(Qt5Core 5.9 COMPONENTS CORE REQUIRED)找不到正确的安装:

  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_PATHCMAKE_MODULE_PATH以向所有路径变体添加CMake的搜索路径,但它根本不起作用。

如何在 / opt / Qt / 处正确设置第二次安装的搜索路径?

更新以便@Florian输入

这有效:

find_package(
   Qt5Core 5.9
   COMPONENTS
      Core
   REQUIRED
)

一起
cmake -DQt5_DIR:PATH=/opt/Qt/5.9.2/gcc_64/lib/cmake/Qt5Core

但在这种情况下,我发现只有QT5Core。有了它,它似乎也适用于所有组件:

find_package(
   Qt5 5.9
   COMPONENTS
      Core
   REQUIRED
)

一起
cmake -DQt5_DIR:PATH=/opt/Qt/5.9.2/gcc_64/lib/cmake/Qt5

第二次编辑

为了避免始终将完整路径放入通话中,我将其添加到我的 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
)

1 个答案:

答案 0 :(得分:4)

使用cmake -DQt5_DIR:PATH=/opt/Qt5/5.9.2/gcc_64/lib/cmake/Qt5

Documentation