繁体   English   中英

如何为iOS的cmake项目找到(配置)Qt?

[英]How to find (configure) Qt for cmake project of iOS?

我通过 macOS 上的在线安装程序安装 Qt(适用于 iOS 和 macOS 的 Qt)。 并且 qmake 项目工作正常,现在我需要使用 cmake Qt 项目进行编译:

cmake_minimum_required(VERSION 3.5)
project(demo LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt5 COMPONENTS Core Quick REQUIRED)

而且我找不到Qt。

直接构建配置:

cmake .. -GXcode -DQt5_DIR=/Users/user/Qt/5.14.1/clang_64/lib/cmake/Qt5
...
-- Configuring done
-- Generating done
-- Build files have been written to:

iOS 交叉编译:

cmake .. -GXcode -DCMAKE_SYSTEM_NAME=iOS -DQt5_DIR=/Users/user/Qt/5.14.1/ios/lib/cmake/Qt5
...
CMake Error at /Users/user/Qt/5.14.1/ios/lib/cmake/Qt5/Qt5Config.cmake:28 (find_package):
  Could not find a package configuration file provided by "Qt5Core" with any
  of the following names:

    Qt5CoreConfig.cmake
    qt5core-config.cmake

  Add the installation prefix of "Qt5Core" to CMAKE_PREFIX_PATH or set
  "Qt5Core_DIR" to a directory containing one of the above files.  If
  "Qt5Core" provides a separate development package or SDK, be sure it has
  been installed.

显然 Qt5CoreConfig.cmake 很好,它与“直接”编译的位置相对相同,但由于某种原因 cmake 找不到它

$ find /Users/user/Qt/5.14.1/ios/lib/cmake/ -name Qt5CoreConfig.cmake
/Users/user/Qt/5.14.1/ios/lib/cmake//Qt5Core/Qt5CoreConfig.cmake

我怎样才能解决这个问题?

为 iOS CMAKE_SYSROOT设置为iPhoneOS.sdk路径。

find_package

CMAKE_SYSROOT 变量也可用于指定一个目录作为前缀。 设置 CMAKE_SYSROOT 也有其他效果。 有关更多信息,请参阅该变量的文档。

这些变量在交叉编译指向目标环境的根目录时特别有用,CMake 也会在那里搜索。 默认情况下,首先搜索 CMAKE_FIND_ROOT_PATH 中列出的目录,然后搜索 CMAKE_SYSROOT 目录,然后搜索非根目录。

因此,添加选项-DCMAKE_FIND_ROOT_PATH=/Users/user/Qt/5.14.1/ios会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM