[英]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
路径。
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.