下载编译 Qt 5 for Android 并新建工程
2016-01-18 23:44
465 查看
步骤详见: http://wiki.qt.io/Android
步骤1-4略
5.安装jdk1.6.0.45: /article/2421313.html
6.配置QT for Android,忽略不支持的模块:
(配置的参数位于QT源码根目录qt-everywhere-opensource-src-5.5.0/qtbase/configure文件中)
新建Qt的安装目录:
mkdir qt-hxm
在QT源码根目录qt-everywhere-opensource-src-5.5.0/下执行:
./configure -xplatform android-g++ -nomake tests -nomake examples -android-ndk /home/valente/android-ndk-r10d -android-sdk /home/valente/android-sdk-linux -android-ndk-host linux-x86_64 -android-toolchain-version 4.9 -skip qttranslations -skip qtwebkit
-skip qtserialport -skip qtwebkit-examples -no-warnings-are-errors -android-arch mips -prefix /home/valente/qt-hxm
7.编译幷安装QT:
make
make install
8.进入如下目录,执行qtcreator:
cd ~/Qt5.5.0/Tools/QtCreator/bin
./qtcreator
9.打开Qt Creator后,点击 工具(Tools) -> 选项(Options) -> Android ,设置Android SDK , Android NDK , JDK 的安装路径
10.点击 工具(Tools) -> 选项(Options) -> 构建和运行(Build & Run) -> Qt Versions,在手动设置中添加 qmake ,文件路径为:/home/valente/qt-hxm/qmake
11.创建一个工程并进行选项配置:
步骤详见(Qt 5.2.0,Qt Creator 3.0): /article/1380661.html
Qt5.5.0,Qt Creator 3.5.0中,与上述选项配置中不同的地方参考: /article/1380645.html
创建完成后在工程中的 .pro 文件中添加makefile的编译参数:
QMAKE_CFLAGS =`-mno-odd-spreg`
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
12.运行后弹出对话框(bin文件夹),将生成的 apk 文件拷贝到其生成目录的父目录,
cd ~/hxm-qt-project/build-HelloQTAndroid-Android_for_mips_GCC_4_9_Qt_5_5_0_bb9c75-Release/android-build/bin ; ls
cp QtApp-release-signed.apk ../
cd ../libs/mips ; ls
file libHelloQTAndroid.so ,查看文件是否为32位。
将apk文件 adb push 到真机的 data/app 上,可以看到运行效果。
相关参考:
1.百度搜索 “mips fpreg”,找到 “MIPS Options - Using the GNU Compiler Collection (GCC)”: http://gcc.gnu.org/onlinedocs/gcc/MIPS-Options.html
其中有关于编译选项 -modd-spreg 和 -mno-odd-spreg 的介绍。
2.百度搜索 “ .pro文件 QMAKE_CFLAGS ” ,找到 “Qt 常用命令,宏,pro文件格式-xutianxi-ChinaUnix博客” : http://blog.chinaunix.net/uid-23670869-id-2391678.html
找到 “QT中Makefile文件的修改_雨儿_新浪博客”: http://blog.sina.com.cn/s/blog_4ba5b45e0102ea96.html ,其中有关于编译参数的添加方法。
3.GCC使用-MIPS64选项编译出错,原因是什么?
龙芯3A/3B处理器使用GS464系列处理器核,支持MIPS64指令集,但在桌面应用最为常见的O32 ABI下,只能使用16个偶数号浮点寄存器。若使用了奇数号浮点寄存器,则会产生计算结果错误。
GCC工具链默认的-mips64选项会对奇数号寄存器进行分配,因此,为了适配龙芯3A/3BO32下编译程序时,必须使用修改寄存器分配后的工具链才能编译出正确的程序。因此,请使用龙芯官方提供的最新版GCC工具链。
步骤1-4略
5.安装jdk1.6.0.45: /article/2421313.html
6.配置QT for Android,忽略不支持的模块:
(配置的参数位于QT源码根目录qt-everywhere-opensource-src-5.5.0/qtbase/configure文件中)
新建Qt的安装目录:
mkdir qt-hxm
在QT源码根目录qt-everywhere-opensource-src-5.5.0/下执行:
./configure -xplatform android-g++ -nomake tests -nomake examples -android-ndk /home/valente/android-ndk-r10d -android-sdk /home/valente/android-sdk-linux -android-ndk-host linux-x86_64 -android-toolchain-version 4.9 -skip qttranslations -skip qtwebkit
-skip qtserialport -skip qtwebkit-examples -no-warnings-are-errors -android-arch mips -prefix /home/valente/qt-hxm
7.编译幷安装QT:
make
make install
8.进入如下目录,执行qtcreator:
cd ~/Qt5.5.0/Tools/QtCreator/bin
./qtcreator
9.打开Qt Creator后,点击 工具(Tools) -> 选项(Options) -> Android ,设置Android SDK , Android NDK , JDK 的安装路径
10.点击 工具(Tools) -> 选项(Options) -> 构建和运行(Build & Run) -> Qt Versions,在手动设置中添加 qmake ,文件路径为:/home/valente/qt-hxm/qmake
11.创建一个工程并进行选项配置:
步骤详见(Qt 5.2.0,Qt Creator 3.0): /article/1380661.html
Qt5.5.0,Qt Creator 3.5.0中,与上述选项配置中不同的地方参考: /article/1380645.html
创建完成后在工程中的 .pro 文件中添加makefile的编译参数:
QMAKE_CFLAGS =`-mno-odd-spreg`
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
12.运行后弹出对话框(bin文件夹),将生成的 apk 文件拷贝到其生成目录的父目录,
cd ~/hxm-qt-project/build-HelloQTAndroid-Android_for_mips_GCC_4_9_Qt_5_5_0_bb9c75-Release/android-build/bin ; ls
cp QtApp-release-signed.apk ../
cd ../libs/mips ; ls
file libHelloQTAndroid.so ,查看文件是否为32位。
将apk文件 adb push 到真机的 data/app 上,可以看到运行效果。
相关参考:
1.百度搜索 “mips fpreg”,找到 “MIPS Options - Using the GNU Compiler Collection (GCC)”: http://gcc.gnu.org/onlinedocs/gcc/MIPS-Options.html
其中有关于编译选项 -modd-spreg 和 -mno-odd-spreg 的介绍。
2.百度搜索 “ .pro文件 QMAKE_CFLAGS ” ,找到 “Qt 常用命令,宏,pro文件格式-xutianxi-ChinaUnix博客” : http://blog.chinaunix.net/uid-23670869-id-2391678.html
找到 “QT中Makefile文件的修改_雨儿_新浪博客”: http://blog.sina.com.cn/s/blog_4ba5b45e0102ea96.html ,其中有关于编译参数的添加方法。
3.GCC使用-MIPS64选项编译出错,原因是什么?
龙芯3A/3B处理器使用GS464系列处理器核,支持MIPS64指令集,但在桌面应用最为常见的O32 ABI下,只能使用16个偶数号浮点寄存器。若使用了奇数号浮点寄存器,则会产生计算结果错误。
GCC工具链默认的-mips64选项会对奇数号寄存器进行分配,因此,为了适配龙芯3A/3BO32下编译程序时,必须使用修改寄存器分配后的工具链才能编译出正确的程序。因此,请使用龙芯官方提供的最新版GCC工具链。
相关文章推荐
- 将Android Studio的设置恢复到初始化
- Android5.0材料设计(二)
- Android5.0材料设计(一)
- 我的Android进阶之旅------>关于使用CSDN-markdown编辑器来编写博客
- Android开发从零开始(1)--2016.01.18
- Android Activity Fragment 生命周期
- 安装谷大家的Ingress(Android)
- mac 上 配置 Android NDK 环境
- Android Apk 代码混淆与资源文件混淆实战
- Android 快速开发 打造万能的ListView GridView 适配器
- 极光推送之服务器端向android等客户端推送实例
- Android apk集成
- Android ORM框架之GreenDao的使用方法
- ArcGIS4Android 2:多个安卓module共享jar和so文件
- Android开启StrictMode模式
- android中的sp和wp
- 51.Rxjava+RxAndroid+Retrofit组合问题
- 【android基础三】Android中SQLite应用详解
- Android学习小结3(活动)
- Android学习小结2