hellvulture 2016-12-22
一直在windows/linux下做QT开发,现在终于有了MAC,迫不及待的试下QT的跨平台性,体验下MAC界面的酷炫。
一. 下载QT5 for mac
图形化界面,点击下一步。
二. 配置环境变量
依旧更新~/.bash_profile文件,默认情况下该文件不存在。这与linux基本上一致。
vi ~/.bash_profile export QTDIR=/Users/my/Qt5.7.0/5.7/clang_64 export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export PATH=$QTDIR/bin:$PATH source ~/.bash_profile
运行qmake,打印帮助信息。至此QT配置成功。
lingdeMacBook-Pro:mac lingsun$ qmake -v QMake version 3.0 Using Qt version 5.7.0 in /Users/my/Qt5.7.0/5.7/clang_64/lib
三. 测试
进行QT Example目录,随便找个工程编译下。
cd /Users/my/Qt5.7.0/Examples/Qt-5.7/charts/areachart #柱状图示例 qmake #生成makefile make
执行报错:
Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.
stackoverflow 搜索到的解决方案,亲测可行:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/ #指定xcode路径 sudo xcodebuild -license #同意license
编译仍然报上述错误,修改default_pre.prf定位到出错行L15。
vi /Users/my/Qt5.7.0/5.7/clang_64/mkspecs/features/mac/default_pre.prf
isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null")))
替换为:
isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")))
apple认为GCC太过于庞大,而使用的是自家开发的clang编译器。
重新编译,在当前目录生成 areachart.app。
open -a areachart.app #执行程序
运行结果:
四. QtCreator
QtCreator需设置QT版本,编译器等参数。
五. xcode
mac上有xcode如此高大上的IDE,怎能弃之不用呢。可用qmake生成xcode工程。
lingdeMacBook-Pro:~ lingsun$ qmake -project #生成pro lingdeMacBook-Pro:~ lingsun$ qmake -spec macx-xcode #生成xcode工程 lingdeMacBook-Pro:~ lingsun$ open widget.xcodeproj #打开xcode工程
编译效果:
六. 注意事项
6.1 中文乱码
windows下源码文件以GBK方式编码,中文在MAC下显示会有乱码出现,将源码保存为UTF-8,重新编译中文能正常显示。
6.2 程序图标
app 图标在不同平台下设置不同,MAC下显示ICON字段,指定*.icns图片,MAC向来特立特行,连图片都跟其它平台不同。icns图片可通过 iconutil 命令生成。
win32{ RC_FILE = ico/online.rc }else{ ICON = ico/app.icns }
6.3 跨平台UI
在MAC下重新编译QT项目,一句代码都不用修改,编译一切正常。
windows:
MAC: