首页 新闻 会员 周边 捐助

QT是如何做到跨平台的?

0
[已解决问题] 解决于 2013-01-29 14:17

如题,QT是如何做到跨平台的?听说它可以在各类系统之间运行。。。linux,winows,mac...freeBSD...它是怎么做到的?

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2012-05-31 17:44
< >
分享
最佳答案
0

QT没有一次编译到处运行。是一次编写到处编译。

原理说白了就是,

现在要做这件事()

{

  switch(现在的环境)

  case 苹果:

    调用苹果的API ;

  case 窗口:

    调用窗口的API

 

  诸如此类。

}

奖励园豆:5
mumuliang | 菜鸟二级 |园豆:213 | 2012-06-28 12:00
其他回答(2)
0

做一个系统无关的层,在各个平台下调用平台相关api实现,都是这么做的。

zsounder | 园豆:2819 (老鸟四级) | 2012-05-31 18:55

他们说的是用QT写好一个项目后,可以放在任何一个平台上运行。。而不用去针对平台改代码。。但是你说的情况好像还是在调用API的时候要改API的名称啊。。不同系统的API名称可能不一样的。。。我就好奇它一次编译,到处运行怎么实现的。。好像没有用中间代码。。

支持(0) 反对(0) hexllo | 园豆:318 (菜鸟二级) | 2012-06-01 11:21

@hexllo: 当然不用改代码,找跨平台的工程看一下,什么都明白了。

支持(0) 反对(0) zsounder | 园豆:2819 (老鸟四级) | 2012-06-01 15:12
0

“一次编译到处运行”?对于native code不可能吧。我记得QT是一份代码多次编译吧

P_Chou | 园豆:210 (菜鸟二级) | 2012-06-05 13:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册