一.关于版本选择
- Qt 5.6之后版本已经取消 WebKit,webkitwidgets
编译老代码会提示
Project ERROR: Unknown module(s) in QT: webkit webkitwidgets
这个
- Qt 5.6之前版本对于xcode8有兼容性问题,需手工调整解决
Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.
-
Qt 5.0.2 有在osx 有bug会造成编译错误无法使用
-
Qt 4.xxx 安装程序在新的 osx 10上会提示损坏系统文件.不建议安装
如果想开发较的Qt 跨平台应用,我建议选 Qt 5.5.1版本,这个可以最大限制兼容Qt 4的代码
下载地址 http://download.qt.io/archive/qt/5.5/5.5.1/
其中QtCreater/QtSDK 打包在一起直接安装即可
http://download.qt.io/archive/qt/5.5/5.5.1/qt-opensource-mac-x64-clang-5.5.1.dmg
二.Qt 5.6 代码调整
Qt 5.6采用基于 Chromium 的浏览器引擎 Qt WebEngine,
Qt5.5.1是最后一个支持webkitwidgets的版本.
如果只是使用WebWidgets 移植方法如下
Qt给出了向高版本迁移的文档:Porting from Qt WebKit to Qt WebEngine
在.pro文件中,如果要区分不同的Qt版本,可以这么写:
lessThan(QT_VERSION, 0x050600)
{
QT += webkitwidgets
# do something else
}
greaterThan(QT_VERSION, 0x050500)
{
QT += webenginewidgets
# do something else
}
头文件调整成
#include <QtWebEngineWidgets>
但没有QWebKit没有对应类
三.Qt 5.5.1修改与xcode8的兼容性
主要问题是xcode8 取消了xcrun,改名成xcodebuild 造成. 因此调整如下
- 打开终端,输入指令并按回车键:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
2.手动同意协议,在命令行输入
sudo xcodebuild -license
并在最后输入agree.
3.编辑 default_pre.prf文件
如果是 Qt 5.5.1 在如下目录下
<QtSDK目录>/5.5/clang_64/mkspecs/features/mac
找到如下一句
isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null"))):
把其中xcrun改名为 xcodebuild 保存后,重启QtCreater即没此提示
isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null"))):
四.测试运行
我下载一个Qt写的开源编辑器 Smark
去掉与QPrintDialog相关代码后,在Qt 5.5.1顺利运行
https://gitee.com/elerao/Smark
网友评论