我通过在线安装程序在我的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
我该如何解决这个问题呢?
发布于 2020-11-30 21:26:40
当为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
会有所帮助。
https://stackoverflow.com/questions/60655596
复制相似问题