QT没有一次编译到处运行。是一次编写到处编译。
原理说白了就是,
现在要做这件事()
{
switch(现在的环境)
case 苹果:
调用苹果的API ;
case 窗口:
调用窗口的API
诸如此类。
}
做一个系统无关的层,在各个平台下调用平台相关api实现,都是这么做的。
他们说的是用QT写好一个项目后,可以放在任何一个平台上运行。。而不用去针对平台改代码。。但是你说的情况好像还是在调用API的时候要改API的名称啊。。不同系统的API名称可能不一样的。。。我就好奇它一次编译,到处运行怎么实现的。。好像没有用中间代码。。
@hexllo: 当然不用改代码,找跨平台的工程看一下,什么都明白了。
“一次编译到处运行”?对于native code不可能吧。我记得QT是一份代码多次编译吧