为什么 Qt 使用自己的 make 工具 qmake?

Why does Qt use its own make tool, qmake?(为什么 Qt 使用自己的 make 工具 qmake?)
本文介绍了为什么 Qt 使用自己的 make 工具 qmake?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我刚开始使用 Qt 并注意到它使用自己的 make 工具, qmake.

I just started using Qt and noticed that it uses its own make tool, qmake.

  • 为什么 Qt 使用自己的 make 工具?
  • 是否有什么特殊原因阻止它使用标准的 make 工具?
  • qmake 是否调用 GCC C++ 编译器?
  • Why does Qt use its own make tool?
  • Is there something special that prevents it from using a standard make tool?
  • Does qmake call the GCC C++ compiler?

推荐答案

Qt 使用 qmake 透明地支持 Qt 的各种插件,包括moc,元对象编译器"(提供信号和槽),uic,theui 编译器"(从 .ui 设计器文件创建头文件)、rcc,资源编译器"(编译资源).

Qt uses qmake to transparently support Qt's various addons, including "moc, the meta-object compiler" (which provides signals & slots), "uic, the ui compiler" (which creates header files from .ui designer files), "rcc, the resource compiler" (which compiles resources).

没有什么可以阻止您使用您想要的任何构建系统.然而,还有很多工作要做.例如,您需要对包含具有信号或槽的类的每个头文件运行moc".一般不推荐使用,尤其是刚开始使用 Qt 的人.

There's nothing to stop you using any build system you want. however, it's a lot more work. For example, you need to run "moc" over every header file that contains a class that has signals or slots. In general it's not recommended, especially for someone who's just starting to use Qt.

QMake 不直接调用 g++/gcc.相反,qmake 在您当前的平台上创建本机 make 文件.在linux下它创建标准的GNU make文件,在windows下它可以生成visual studio make文件,在Mac OS X下它可以生成XCode工程文件.然后调用您的本机构建系统(GNU make、MS NMake、xcodebuild 或其他),它将调用您的本机编译器(g++/gcc 或其他).

QMake does not call g++/gcc directly. Instead, qmake creates native make files on your current platform. Under linux it creates standard GNU make files, under windows it can generate visual studio make files, under Mac OS X it can generate XCode project files. You then invoke your native build system (either GNU make, or MS NMake, or xcodebuild or whatever), which will call your native compiler (g++/gcc or whatever).

这篇关于为什么 Qt 使用自己的 make 工具 qmake?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Bring window to front -gt; raise(),show(),activateWindow() don’t work(把窗户放在前面 -raise(),show(),activateWindow() 不起作用)
How to get a list video capture devices NAMES (web cameras) using Qt (crossplatform)? (C++)(如何使用 Qt(跨平台)获取列表视频捕获设备名称(网络摄像机)?(C++))
How to compile Qt as static(如何将 Qt 编译为静态)
C++ over Qt : Controlling transparency of Labels and Buttons(C++ over Qt:控制标签和按钮的透明度)
How to know when a new USB storage device is connected in Qt?(Qt如何知道新的USB存储设备何时连接?)
What is an event loop in Qt?(Qt 中的事件循环是什么?)