答案 0 :(得分:56)
Qt使用qmake透明地支持Qt的各种插件,包括“moc,元对象编译器”(提供信号和插槽),“uic,ui编译器”(从.ui设计器文件创建头文件) ,“rcc,资源编译器”(编译资源)。
没有什么可以阻止你使用你想要的任何构建系统。然而,它还有很多工作要做。例如,您需要在包含具有信号或槽的类的每个头文件上运行“moc”。一般来说,不建议使用,特别是对于刚开始使用Qt的人。
QMake不直接调用g ++ / gcc。相反,qmake会在您当前的平台上创建本机make文件。在linux下它创建了标准的GNU make文件,在windows下它可以生成visual studio make文件,在Mac OS X下它可以生成XCode项目文件。然后,您调用本机构建系统(GNU make,或MS NMake,或xcodebuild或其他),这将调用您的本机编译器(g ++ / gcc或其他)。
答案 1 :(得分:8)
在我的观点中,qmake对于简单的项目来说很酷(你可以只是qmake -project; qmake; make),但是对于大型项目来说可怕而且没有足够的文档记录。特别是qmake的配置功能是一个笑话。
我所知道的最好的构建系统是CMake和Waf(基于Python)。在我自己的Qt项目中,我使用CMake来完成这项工作。就像KDE家伙一样:))
答案 2 :(得分:6)
为了支持它的信号/插槽系统,Qt依赖于一个特殊的预处理器和编译器,它可以生成执行大部分处理的中间对象。他们将此称为元对象编译器或 MOC 。
有关详细信息,请参阅Qt 5 Documentation: Using the Meta-Object Compiler。
MOC(以及其他一些中间工具)与qmake
一起使用;一个构建自动化工具,它以您的本机格式(VC ++,g ++等)生成Makefile,它将MOC生成的中间文件以及所有源文件构建到最终的可执行文件中。
答案 3 :(得分:5)
qmake 旨在跨平台且灵活。它可以与Microsoft Visual Studio和Xcode兼容。
您可以在qmake Manual中找到所有内容。
qmake基于生成Makefile 项目文件中的信息。 项目文件由。创建 开发人员,通常很简单,但是 更复杂的项目文件可以 为复杂的项目创建。 QMAKE 包含其他功能 用Qt支持开发, 自动包括构建规则 对于moc和uic。 qmake也可以 为Microsoft Visual生成项目 工作室,无需开发人员 更改项目文件。
答案 4 :(得分:3)
按顺序
a)因为它为你做了很多幕后工作
b)是,见a)
c)是的,它确实调用了g ++(但如果你有它们可以支持其他编译器)
答案 5 :(得分:1)
顺便说一句,在包括Qt 5.x之前都是如此。 Qt 6现在改用CMake了。至少对于构建Qt本身而言,但是可以合理地预期将建议使用cmake来构建Qt应用程序本身而不是qmake。特别是因为首席qmake开发人员不再为Qt公司工作。 最后是一种行业标准工具,而不是内部工具:-)