类库大魔王
类库大魔王 多年C++、Go项目经验,长期从事跨平台(Windows/macOS/iOS/Android)应用架构设计与开发。

一些Qt tips


Qt在Windows上支持众多编译器套件/版本,图省事可以直接从msys2的仓库通过pacman安装,有32位和64位,静态链接和动态链接总共4个包。还可以通过pacman安装Qt Creator,也有32位和64位共2个版本。经过简单试用下来发现,从msys2安装的Qt与从官网下载安装的MinGW版本Qt基本相同,但比MSVC版本要不好用些,我遇到几个问题不能解决:

  1. 编译Lua源代码失败
  2. 找不到SHGetKnownFolderPath定义
  3. 没有WebEngine

QtWebEngineCore在QT += webengine后就可以使用,但在macOS上deploy时浏览器独立进程并不能通过rpath找到链接的Frameworks,需要QT += webenginecore后解决。


Qt 5.8开源版本引入了一个QML Ahead-Of-Time编译功能,这个功能默认打开,程序使用.qml文件和.js文件会在程序第一次运行时自动编译成.qmlc文件和.jsc文件。编译后的文件之后会被程序自动装载使用,可以加速程序第二次及以后运行时装载QML文件的速度。编译后的文件存放在StandardPaths::writableLocation(QStandardPaths::CacheLocation)下面的qmlcache目录中。其实加速效果也了胜于无,比较期待商业版本中包含的QtQuick Compiler,本来说5.8开源版会有的,后来居然反悔了,之后什么时候会有开源版本就不一定咯。


另外发现一个现象,至少在Windows上很明显,使用静态编译的Qt生成的程序比动态编译的Qt生成的程序启动速度要快很多,我能想到的是从磁盘读取的东西少了,但即使是使用了SSD也仍然非常明显。不排除动态编译版本会多一些奇怪的初始化操作以致于拖慢了启动速度。

感觉本文不错,不妨小额鼓励我一下!
如果你有Visa、MasterCard之类的国际银行卡,也可以考虑以下选项:
如果你看不到评论框,说明Disqus被墙了。