当前位置: 首页 > news >正文

ios qt开发要点

目前关于ios qt的开发资料比较少,这里整理了几个比较重要的开发要点,基于MacOS14 + Xcode15 + Qt5.15 + cmake + iphone真机。

  • cmake报错,报错信息如下
CMake Error at /Users/user/Qt/5.15.5/ios/lib/cmake/Qt5Core/Qt5CoreConfig.cmake:91 (message):
Library not found: MobileCoreServices
Call Stack (most recent call first):
/Users/user/Qt/5.15.5/ios/lib/cmake/Qt5Core/Qt5CoreConfig.cmake:263
(_qt5_Core_process_prl_file)
/Users/user/Qt/5.15.5/ios/lib/cmake/Qt5/Qt5Config.cmake:28 (find_package)
CMakeLists.txt:28 (find_package)

解决方法:添加cmake参数

-DCMAKE_FIND_ROOT_PATH:STRING=%{Qt:QT_INSTALL_PREFIX}
-DCMAKE_SYSTEM_NAME=iOS
-DCMAKE_OSX_SYSROOT=iphoneos
-DCMAKE_OSX_ARCHITECTURES=arm64

并在CMakeLists.txt中添加

if(IOS)target_link_options(${user_project_target_name} PRIVATE "-Wl,-e,_qt_main_wrapper")
endif()

参考来源:https://bugreports.qt.io/browse/QTCREATORBUG-26121

  • 找不到openssl,报错如下
  Could NOT find OpenSSL, try to set the path to OpenSSL root folder in thesystem variable OPENSSL_ROOT_DIR (missing: OPENSSL_INCLUDE_DIR)

实测设置OPENSSL_ROOT_DIR无效,这里可以手动指定相应的cmake变量,在FindOpenSSL.cmake做相应的修改。

FIND_PATH(OPENSSL_INCLUDE_DIRNAMESopenssl/ssl.hPATH_SUFFIXES"include"HINTS${_OPENSSL_INCLUDEDIR}${_OPENSSL_ROOT_HINTS_AND_PATHS}PATH_SUFFIXESinclude
)# add for ios
IF(IOS AND NOT OPENSSL_INCLUDE_DIR)set (OPENSSL_INCLUDE_DIR "/usr/local/opt/opensslios@1.1/include")set (SSL_LIBRARY "/usr/local/opt/opensslios@1.1/lib/libssl.a")set (CRYPTO_LIBRARY "/usr/local/opt/opensslios@1.1/lib/libcrypto.a")list(APPEND OPENSSL_LIBRARIES ${CRYPTO_LIBRARY} ${SSL_LIBRARY})
ENDIF()
  • 打开.pro项目文件报错,无法展开项目文件树
failed to parse default search paths from compiler output

解决方法:在qmake构建步骤添加额外参数

 -early QMAKE_DEFAULT_LIBDIRS=$(xcrun -show-sdk-path)/usr/lib

参考来源:https://bugreports.qt.io/browse/QTBUG-117225

  • 设置AppIcon无效,解决方法:1)在Xcode中将xcassets文件添加到Build Phases中的Copy Bundle Resources中;2)也可以在cmake如下添加:
set_target_properties(${MODULE_NAME} PROPERTIES RESOURCE "xxx.xcassets")

http://www.lryc.cn/news/239968.html

相关文章:

  • 免费小程序商城搭建之b2b2c o2o 多商家入驻商城 直播带货商城 电子商务b2b2c o2o 多商家入驻商城 直播带货商城 电子商务
  • ChatGPT最强?文心一言与ChatGPT对比
  • 算法通关村第十二关|青铜|字符串转换整数
  • CSS实现空心的“尖角”
  • 算法 全排列的应用
  • 环境配置|GitHub——如何在github上搭建自己写的网站
  • Windows系统中curl和wget命令下载说明
  • 山西电力市场日前价格预测【2023-11-24】
  • 说说你对 shell 的理解以及常见的命令?
  • 数据结构之双向带头循环链表函数功能实现与详细解析
  • SpringBoot_websocket实战
  • 香港科技大学广州|机器人与自主系统学域博士招生宣讲会—同济大学专场!!!(暨全额奖学金政策)
  • python基于GCN(图卷积神经网络模型)和LSTM(长短期记忆神经网络模型)开发构建污染物时间序列预测模型
  • SpringMVC问题
  • 【Linux】Linux的常用基本指令
  • 气候变化和人类活动对中国植被固碳的贡献量化数据月度合成产品
  • 定位鼠标悬浮才出现的元素
  • 【css/vue】使用css变量,在同一个页面根据不同情况改变字号等样式
  • 在springboot中实现WebSocket协议通信
  • 云原生Docker系列 | Docker私有镜像仓库公有镜像仓库使用
  • 用于 syslog 收集的协议:TCP、UDP、RELP
  • OpenAI创始人山姆·阿尔特曼重返公司;LLM持续学习
  • Ant Design Pro生产环境部署
  • Altium Designer学习笔记10
  • ubuntu cutecom串口调试工具使用方法(图形界面)
  • flink 1.17.1的pom.xml模板
  • MySql的数据类型和隐式转换
  • 【开源】基于JAVA的在线课程教学系统
  • 【Linux】权限理解【文件权限以及目录权限详解、以及umsk程序掩码知识详解】
  • Leetcode—1410.HTML实体解析器【中等】