首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为iOS的cmake工程查找(配置) Qt?

如何为iOS的cmake工程查找(配置) Qt?
EN

Stack Overflow用户
提问于 2020-03-12 21:54:21
回答 1查看 221关注 0票数 2

我通过在线安装程序在我的macOS上安装Qt ( iOS和macOS的Qt)。并且qmake项目运行良好,现在我需要使用cmake Qt项目进行编译:

代码语言:javascript
复制
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。

直接构建配置:

代码语言:javascript
复制
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的交叉编译:

代码语言:javascript
复制
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找不到它。

代码语言:javascript
复制
$ 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

我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2020-12-01 05:26:40

当为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会有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60655596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档