当我们从 http://qt.nokia.com/downloads 下载 QtSDK 时,我们已经获得了最新版本的 Qt Creator 。如果你下载的是 Windows 平台 mingw 版本的 QtSDK,其中包含的 Qt Creator 是使用 MSVC 进行编译的,而 Qt Framework 和 Qt Designer 则使用的是 mingw(这也就是为什么有时候我们的插件能够在 Qt Designer 找到,但在 Qt Creator 却看不到)。因此,如果我们要使用 mingw 版本的 QtSDK 进行 Qt Creator 插件开发,需要自己编译 Qt Creator 。如果未来版本,QtSDK 提供的 Qt Creator 也是 mingw 编译的,那么,我们最好还是自己手动编译一下 Qt Creator 。这样我们就可以获得一个 debug 版本的 Qt Creator ,从而更有利于插件的调试。(这里说明一下,Windows 平台下的 Qt Creator 之所以提供 MSVC 版本的,完全是技术原因。因为 mingw 缺少一些 Qt Creator 所必需的 Windows API。)
在这个页面上,我们可以找到 Qt Creator 源代码的下载链接:http://qt.nokia.com/downloads/qt-creator-source-package。在本文写作时,Qt Creator 最新版本是 2.2.1。我们下载下来一个 zip 压缩包,解压之后,我们在与 Qt Creator 源代码平级的目录中创建一个 build 文件夹,用于放置编译后的文件,以免编译的过程文件同源代码混在一起(build 文件夹必须与 Qt Creator 源代码文件夹平级,这是 qmake 做 shadow build 时的要求)。于是,现在的目录结构如下所示:
新版本的 Qt Creator 提供了一个 Qt Quick Designer,用于 Qt Quick 的可视化设计。不过,这个插件需要用到 Qt 的私有头文件。如果你是从 Nokia 直接下载的 QtSDK(就像上文说明的那样)安装,是没有这些私有头文件的。解决的办法是下载 Qt 的源代码(可以在 Qt libraries 这里找到一个 zip 的下载地址)。(这是 Qt Creator 已知的一个 bug,可以在这里找到详细信息。)在下载 Qt 源代码之后,将 {Qt-source-code}\src\corelib\kernel\qwineventnotifier_p.h 复制到 {QtSDK-path}\Desktop\Qt\4.7.3\mingw\include\QtCore\private 这个文件夹下(没有的话请自行创建)。
然后,我们运行“开始菜单\Qt SDK\Desktop\Qt 4.7.3 for Desktop (MinGW)”。此时会启动已经设置好 Qt 环境变量的命令提示符界面。然后使用 cd 命令,进入我们刚刚创建的 build 文件夹。执行命令:
qmake ../qtcreator.pro “QT_PRIVATE_HEADERS=D:/Develop/QtSDK/Desktop/Qt/4.7.3/mingw/include”
其中,D:/Develop/QtSDK/Desktop/Qt/4.7.3/mingw/include 这个路径用于指定 Qt include 文件夹的位置。配置结束后,使用
mingw32-make
豆子在编译时会有找不到 qwineventnotifier_p.h 文件,在执行前面的修复之后即可通过。另外还可能会有一个找不到 ide_version.h 文件。如果出现这个问题,可以将 build\src\plugins\coreplugin 目录中的 ide_version.h,复制到 {qtcreator-2.2.1-src}\src\plugins\coreplugin),我们就会在 build\bin 下面找到 qtcreator.exe 可执行文件。双击运行一下,如果一切正常,那么恭喜你!一个 debug 版本的 Qt Creator 已经编译完成了!(可能会有找不到 dll 的错误,如果出现的话请自行修复路径。启动我们编译的 Qt Creator 会很慢,因为这是 debug 版本的。)
最后强调一点,一定要从源代码编译 Qt Creator ,否则,后面的插件开发的编写和测试工作可能会有许多问题。