QT是一个跨平台的框架,支持PC端(Windows、Linux和Mac OS)以及移动端(Android和IOS),之前的开发大都在Windows或者Ubuntu上,考虑到项目多平台支持性,本文对Mac OS以及IOS平台作一个入门体验,Mac机太贵,公司不给买实体机,IOS自己也没有,虚拟机走起!

在VMWare15中安装Mac OS10.13,具体安装请自行参考网友分享内容,开机后提示“电脑因出现问题而重新启动。请按一下按键,或等几秒钟以继续启动”:

这个需要安装Unlocker,首先关闭虚拟机,下载Unlocker+v3.0.0后解压,管理员身份运行win-install.cmd后就可以成功进入系统了~

请下载Qt的mac版本老安装,安装过程请自行百度,我这里安装的是Qt5.12.0版本,安装完成后运行Qt Creator.app启动Qt Creator,发现构建组件中只有clang一项,可以通过clang编译器编译构建Mac平台的Qt程序。

但是IOS平台的构建器没有,这需要再次安装。

这需要借助Mac平台的XCode来安装,首先关闭Qt Creator, 在launchpad中找到终端并打开,接着敲入:

sudo xcode-select -switch /Users/Michael/Downloads/Xcode.app/Contents/Developer

其中Michael是用户名,/Users/Michael/Downloads/Xcode.app是Xcode的地址,直接拖进来即可,回车后输入管理员密码执行命令成功。最后再次打开Qt Creator可以看到多了IOS以及IOS Simulator构建组件。

我的程序在IOS Simulator下执行构建,提示错误:

 error: static_assert failed "Required feature printdialog for file /Users/Michael/dev/qt-package/5.12.0/ios/include/QtPrintSupport/qprintdialog.h not available."
QT_REQUIRE_CONFIG(printdialog);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

解决办法:将*.pro中的printsupport注释掉,将程序中涉及QPrinter、QPrintDialog的代码全部注释掉,这个是PC平台的,移动端不需要的。

构建成功后,运行会启动IOS Simulator,但是我的程序会运行黑屏,仔细看以下代码,是代码中又Opengl检测的代码,将其注释掉即可:

最后,终于在IOS上运行起来了~

QT在Mac OS上编译运行初体验的更多相关文章

  1. 在 Mac OS 上编译 OBS

    本文转自:在 Mac OS 上编译 OBS | www.samirchen.com 安装环境 第一步,做准备工作,安装编译 OBS 所需要的环境,流程如下: // 给当前用户添加 /usr/local ...

  2. 在 Mac OS 上编译 FFmpeg

    本文转自:在 Mac OS 上编译 FFmpeg | www.samirchen.com 安装 Xcode 和 Command Line Tools 从 App Store 上安装 Xcode,并确保 ...

  3. 在 Mac OS 上创建并运行 ASP.NET Core 1.0 网站

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  4. 在 Mac OS 上使用 TypeScript 编写 ASP.NET Core 1.0 应用

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  5. 记录Mac OS下编译Thrift库

    方法一:brew管理工具安装Homebrew是Mac开发包管理工具,类似于Linux的apt-get之类的,实它相当于开发软件界的 Appstore.借助该管理工具,可以自动化地安装软件包,它会自动安 ...

  6. 如何将NTFS格式的移动硬盘挂接到Mac OS上进行读写(Read/Write)操作

    现在硬盘便宜,很多同学都有移动硬盘,如果你同时使用Windows与Mac OS的话,移动硬盘最好不要使用NTFS文件系统,否则在Mac OS上,你只能读你的移动硬盘,不能写. 但是实际上的情况是,移动 ...

  7. Mac OS 上设置 JAVA_HOME

    Mac OS 上设置 JAVA_HOME 原文链接:http://han.guokai.blog.163.com/blog/static/136718271201301183938165/ 由于需要, ...

  8. 转-在Mac OS上搭建Python的开发环境

    在Mac OS上搭建Python的开发环境   本文转载自:http://www.jb51.net/article/76931.htm 一. 安装python mac系统其实自带了一个python的执 ...

  9. Windows OS上安装运行Apache Kafka教程

    Windows OS上安装运行Apache Kafka教程 下面是分步指南,教你如何在Windows OS上安装运行Apache Zookeeper和Apache Kafka. 简介 本文讲述了如何在 ...

随机推荐

  1. 用Jetpack的Site Accelerator为网站CDN加速

    Jetpack 的Site Accelerator站点加速器(前身为 Photon,注意:“Photon”现在是站点加速器的一部分)允许 Jetpack 优化图像并通过他们的全球服务器网络CDN提供图 ...

  2. VLDB 2019:

    纵览数据库顶会VLDB 2019论文,我们发现了六大发展动向 作者 | 韩硕 [导读]一年一度的数据库领域顶级会议 VLDB 2019 于当地时间8月26日-8月30日在美国加利福尼亚州洛杉矶召开,探 ...

  3. Getting Started with TensorFlow.js

    使用TensorFlow.js,您不仅可以在浏览器中运行深度学习模型进行推理,你还能够训练它们.在这个简单的样例中,将展示一个相当于“Hello World”的示例. 1.引入TensorFlow.j ...

  4. 求职-如何选择offer

    如何选择offer呢?下面我们从这几部分一起聊聊: HR问你目前拿到哪几个offer了怎么回答好? 选择小公司还是大公司? 为什么刚入行不要去没有人带的部门? 正式员工.合同工和外包人员有什么区别? ...

  5. RHEL7 安装Docker-CE

    rhel7官方有源可以直接使用,前提是需要订阅, 参考地址 通过添加CentOS7 源,进行安装: 通过添加CentOS7 源,进行安装 参考博客 安装container-selinux依赖(Requ ...

  6. 洛谷 P1440 求m区间内的最小值

    传送门 思路 由于数据范围很大,所以使用单调队列,和滑动窗口这道题类似 首先第一个数输出\(0\),因为第一个数之前没有数 然后通过样例我们发现,最后一个数并没有派上什么用场,所以循环\(n-1\)轮 ...

  7. 测试总结(没有rank1)

    一个初三蒟蒻不可能rank1.jpg T1: 给出两个单词 (开始单词和结束单词) 以及一个词典. 找出从开始单词转换到结束单词,所需要的最短转换序列.转换的规则如下:1.每次只能改变一个字母2.转换 ...

  8. 【转】为什么要重写hashcode()方法和toString()方法

    Object 类 包含toString()和hashCode()方法. 一.toString(): 在Object类里面定义toString()方法的时候返回的对象的哈希code码,这个hashcod ...

  9. [LeetCode] 899. Orderly Queue 有序队列

    A string S of lowercase letters is given.  Then, we may make any number of moves. In each move, we c ...

  10. [LeetCode] 684. Redundant Connection 冗余的连接

    In this problem, a tree is an undirected graph that is connected and has no cycles. The given input ...