如何采用QT开发出windows/Linux/Mac/Andriod/iOS的程序?
qt的代码本身在windows和linux底下用qtcreator编译可以跨平台,但要发布的话还要手动的静态编译qtcreator源码,mac,ios开发好像要用mac平台下的软件,android一般是java,python之类的,qt没听说过。qt是c++的超集,加了些qt自己的库而已。
临清网站建设公司创新互联,临清网站设计制作,有大型网站制作公司丰富经验。已为临清上千多家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的临清做网站的公司定做!
QT写的程序可以同时支持在安卓、苹果、黑莓系统上运行??
接着是黑莓中国的开发者关系主管,主要讲了黑莓10的生态系统,重点表示在
可以说几近支持市面上大多数通用型开发框架了,同时还支持大多数开源库和
从Qt5.1开始,Qt将正式支持在安卓上的
如何使用qt搭建ios开发环境
开始编译安装:
一、X11编译:
1.进入qt-x11-opensource-src-4.5.0源码目录。
./configure -no-openssl
在我这里必须加上-no-openssl选项,否则在make过程中,编译到ssl时会报错。出错信息为:
ssl/qsslsocket_openssl_symbols_p.h:264: error: variable or field ‘q_sk_free’
declared void
ssl/qsslsocket_openssl_symbols_p.h:264: error: ‘STACK’ was
not declared in this scope
ssl/qsslsocket_openssl_symbols_p.h:264: error:
‘a’ was not declared in this scope
ssl/qsslsocket_openssl_symbols_p.h:265: error: ‘STACK’ was not declared in this
scope
ssl/qsslsocket_openssl_symbols_p.h:265: error: ‘a’ was not declared
in this scope
……
……
默认安装路径为
/usr/local/Trolltech/Qt-4.5.0。可用--prefix 指定其他安装路径。
2. gmake
# linux下一般可直接用make代替gmake。如果要加快编译速度,就加上 -jx ,x表示最大的线程数。
3.
gmake install
二、qt-embedded-x86编译:
1.进入qt-embedded-linux-opensource-src-4.5.0-x86源码目录。
./configure -prefix
/usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -no-openssl -qt-gfx-qvfb
-qt-kbd-qvfb -qt-mouse-qvfb
先后配置了安装目录、嵌入式架构(x86)。同时也跟X11版本一样,配置了
-no-openssl,没有这一项的话,make的过程中会出现跟编译X11时一样的错误。再后面的几项是为了更好的配合qvfb,网上说如果没有这几项,安装好qt-embedded-x86后想在qvfb上调试程序时,会出现类似下面的错误:
Error opening buffer device /dev/fb0QScreenLinuxFb::connect: No such
file or directory
2. gmake
跟x11版一样
3. gamke
install
三、qt-embedded-arm:
与前面两个不同,在编译arm版本的qt-embedded前,必须确认已经安装了交叉工具链,编译过程中要生成许多arm架构的库,所以必须有arm-linux-gcc、arm-linux-g++等工具。我用的是友善提供的arm-linux-gcc-4.5.1版本。
1. 进入qt-embedded-linux-opensource-src-4.5.0-arm源码目录。
./configure -prefix
/usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm -no-openssl
-qt-libpng
指定了安装路径、嵌入式架构。同时也跟X11版本一样,配置了
-no-openssl,没有这一项的话,make的过程中会出现跟编译X11时一样的错误。
另外,还增加了一项,
-qt-libpng,这个选项应该是关于png相关的库,指定用qt自带的png库。如果没有这一项,我这里会出现如下错误:
image/qpnghandler.cpp: In member function 'virtual QVariant
QPngHandler::option(QImageIOHandler::ImageOption) const':
image/qpnghandler.cpp:950:35: warning: 'png_info_struct::width' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:639)
image/qpnghandler.cpp:950:35: warning: 'png_info_struct::width' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:639)
image/qpnghandler.cpp:950:55: warning: 'png_info_struct::height' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:640)
image/qpnghandler.cpp:950:55: warning: 'png_info_struct::height' is deprecated
(declared at
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:640)
make[1]: *** [.obj/release-shared-emb-arm/qpnghandler.o] 错误 1
make[1]:
*** 正在等待未完成的任务....
make[1]: Leaving directory
`/root/qt4.5.0/qt-embedded-linux-opensource-src-4.5.0-arm/src/gui'
make:
*** [sub-gui-make_default-ordered] 错误 2
看起来像是我的交叉工具链跟这个QT版本匹配的不太好,Qt好像不太兼容交叉工具链的png.h头文件中定义的数据结构。加上 -qt-libpng
可解决此问题。
四、qvfb:
这时QT就已安装成功。但是还需要额外安装qvfb。
进入qt-x11-opensource-src-4.5.0源码包目录,然后
cd tools/qvfb
在qvfb源码目录下运行
make
会在qt-x11-opensource-src-4.5.0/bin下生成qvfb,我们将它copy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下即可。
end:
到这里,QT的开发环境基本就搭建好了,利用 qt-embedded-x86 和 qvfb
工具可以很方便的调试QT程序,调试好的程序再经 qt-embedded-arm
编译就可在开发板上运行(还有个小问题,我现在编译好的QT程序虽然可以在开发板上运行,但是运行时触摸屏不能用,只能用USB鼠标控制,想支持触摸屏貌似还需要移植tslib库,等我折腾完了再回来把相关内容补充上)。
使用QT,统一开发android和IOS平台是不是一个合适的选择
这主要体现在一下3点:1.关于跨平台: Qt的一大优势就是跨平台,一份代码若准守Qt标准开发,那么理论上可以跨所有Qt支持的平台并且不需要修改。但是这个是有代价的。比如说对于iOS平台,若用OC或者swift,可能用1份的开发时间就可以完成开发,但是用Qt可能是1.5份。这主要体现在Qt在移动平台没有提供现成的、成熟的(Qt目前有一个lab,是一个控件包,针对移动平台有做优化,但是还在测试阶段)控件供应开发者使用。比如说Qt没有侧滑窗口、没有滑动返回、没有顶部状态栏,很多东西都需要自己造轮子,非常浪费时间,而且效果不一定好。我记得5.5的时候,连访问系统相册这个功能都没有,要自己写OC代码去访问,不过5.6加上了。这个开发的工作量,对于一个没有跨平台需求的App,明显是不合适的。但是如果有跨平台需求,那么可能是1.5份的开发量,就可以获得iOS+Android两份平台的App,相比2份的开发量性价比就上来了。而且如果有需求还可以部署到WP、UbuntuPhone等移动平台。2.关于Quick Qt从5开始,就主推界面用Quick开发(Quick是框架,QML是配合Quick的一个语言),然后用C++开发复杂的逻辑。这个愿景是好的,但是推行真的很慢。这是因为新的框架也就是Quick,带来了新的学习成本,这个直接就吓跑了很多人。我知道很多用Qt的人,即使开发了N年Widgets,对Qucik也可能都是完全没有接触的状态。当然Quick本身是好的,相比Widgets开发效率高、漂亮、运行速度快。另外,如果是Widgets开发移动端App,我建议你直接打消这个念头,还是算了。这主要是因为用Widgets开发的程序,各方面实在是太差了。比如说Widgets很多界面都是CPU绘制的,然后移动平台CPU本来就弱,这就导致了界面很卡。还有开发效率也低。3.关于成熟度 从目前Qt5.6的角度看,已经加入了很多以前没有的模块了,我觉得用于Qt开发一些基础的App,已经完全可以胜任了。但是对于功能复杂的App,我建议还是权衡一下比较好。还有就是现在很多SDK包,都只对原生框架做了适配,用Qt开发意味着还是要回到原生框架去处理一些通讯、交互什么的,这个也要注意。
分享文章:qtios开发的简单介绍
文章路径:http://lswzjz.com/article/dsdeggj.html