Windows QT编译运行qml-material的Demo

代码地址:https://github.com/papyros/qml-material、

编译代码需要使用Windows上的Git Bash终端,最好以管理员权限运行,因为使用Windows的PowerShell执行make install时src.pro里的这两条命令执行失败,使用Git Bash则可以成功。

一.编译Windows平台

注:1. 我在执行qmake和make时,都使用的绝对路径,设置环境变量的话效果等同。

       2. Windows路径和Git Bash里使用的路径格式不同。 

我的QT mingw编译器的qmake路径是:C:\Qt\5.15.2\mingw81_64\bin,GCC/G++所在路径是:C:\Qt\Tools\mingw810_64\bin

$ cd qml-material/src/

$ mkdir build-mingw

$ cd build-mingw/

$ /C/Qt/5.15.2/mingw81_64/bin/qmake.exe ../

第一次执行qmake出现下面的错误,需要设置g++所在路径的环境变量。

环境变量设置之后要关掉Git Bash终端,重新开启。

再次运行 /C/Qt/5.15.2/mingw81_64/bin/qmake.exe .. (注意命令后面有个空格和两个点,因为是对上一级目录做qmake)

qmake执行成功:

因为刚刚已经设置过环境变量了,接下来直接执行make和make install,我的环境没有遇到问题。

$ mingw32-make

$ mingw32-make install

install成功之后在QT的mingw套件路径下会有以下内容:

用QT Creator打开代码路径/demo/下的demo.pro,顺便说一下,我的QT Creator版本是9.0.2,QT的版本是5.15.2

打开之后,直接运行成功:

二。编译Android平台

$ mkdir build-android

$ cd build-android/

$ /c/Qt/5.15.2/android/bin/qmake ..  (注意命令后面有。。)

第一次执行qmake时出现如下错误,需要把安卓的默认NDK的路径赋值给环境变量ANDROID_NDK_ROOT。

就是上图中的这个路径,选默认使用的那个,执行export设置该环境变量

$ export ANDROID_NDK_ROOT=/c/Users/seanp/AppData/Local/Android/android-sdk/ndk/21.3.6528147/

export之后再次执行qmake,成功

NDK的make.exe藏的比较深,我的路径是:C:\Users\seanp\AppData\Local\Android\android-sdk\ndk\21.3.6528147\prebuilt\windows-x86_64\bin\make.exe  为了方便,我提前添加了环境变量。

执行make和make install,我的环境都没出现问题。

$ make

$ make install

Install之后,在QT的安卓套件的QML路径下会多出一堆内容,如下图。

此时用QT Creator去构建安卓的APK是可以成功的,但是运行起来之后是个空白界面,提示信息是没有安装material。我手动拷贝了几个文件,src编译成功之后在qml-material\src\build-android路径下会生成几个so文件:其中应该有libmaterial_arm64-v8a.so 和 libmaterial_armeabi-v7a.so,

将这几个so文件(实际上只需要其中一个)拷贝到Qt\5.15.2\android\qml\Material路径下,再次打包APK,成功了。谁有更合适的解决办法,还请告知。

 

  • 16
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值