【问题标题】:How to tell Cmake about Qt installation dir without changing PATH?如何在不更改 PATH 的情况下告诉 Cmake Qt 安装目录?
【发布时间】:2021-03-03 12:26:07
【问题描述】:

在我的CMakeLists.txt 中,我有一个如下电话

find_package(Qt5 COMPONENTS Gui)

但要使上述工作,Qt 需要在PATH 中设置,如下所示。

export PATH=$PATH:/Path/To/QtInstallationFolder/5.12.5/clang_64/bin

PATH 中有Qt 当然可以,但我不想为我的源代码构建的每台机器更改PATH。有没有办法在不更改PATH 的情况下告诉Cmake 我的Qt 安装文件夹机器而不改变我项目的CMakeLists.txt

我尝试了以下方法:

export CMAKE_PREFIX_PATH=/Path/To/QtInstallationFolder/5.12.5/clang_64/bin
export CMAKE_FRAMEWORK_PATH=/Path/To/QtInstallationFolder/5.12.5/clang_64/bin
export CMAKE_APPBUNDLE_PATH=/Path/To/QtInstallationFolder/5.12.5/clang_64/bin

但以上没有帮助。

环境:
macOS 卡塔利娜
Cmake 版本 3.18.2 Qt 5.12.5

【问题讨论】:

  • 您应该将 Qt 安装的根目录提供给 CMake,而不是 bin 文件夹。将 CMAKE_PREFIX_PATH 作为参数添加到您的 cmake 调用中,例如cmake -B <builddir> -S <sourcedir> -DCMAKE_PREFIX_PATH=/Path/To/QtInstallationFolder/5.12.5/clang_64.

标签: qt cmake qmake


【解决方案1】:

export CMAKE_PREFIX_PATH=... 不起作用的原因是您传递了 bin 子目录而不是安装前缀,正如 @vre 在 cmets 中已经指出的那样。

或者,您可以使用-DQt5_ROOT=/Path/To/QtInstallationFolder/5.12.5/clang_64。我个人更喜欢使用这些特定于包的变量,因为在 CI 构建脚本中,您可以轻松地将它们放在单独的行上,这样就不会变得太长。

【讨论】:

  • export CMAKE_PREFIX_PATH=... 不起作用的原因是 CMake 期望这是一个 CMake(缓存)变量,而不是环境变量” - 实际上,CMake 检查这两个变量,CMake 一和 环境 一。参见例如find_package 的搜索过程。
  • @Tsyvarev 哦,我不知道。谢谢,我已经更新了答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-11
  • 2015-03-24
  • 2016-06-07
相关资源
最近更新 更多