您的位置:首页 > 运维架构 > Linux

使用QT实现DREAM:Building on Linux for Android

2014-01-02 15:58 946 查看
在Ubuntu系统下运用QT编译Android程序DREAM。因为自己在做这个程序时犯了许多低级错误,可能很多初学QT 的朋友也会出现这样的问题。目前我的程序已经基本编译好了,在这里做下总结,本文记录了我在这次编译过程中的步骤,并附上截图,初学者应该可以参考我的步骤进行练习。我也是新手练习,里面可能存在一些错误,希望大家看后指点



准备工作:

android

sdk

ndk

QT

DREAM 源码下载:

相关库下载:

QWT

fftw

QT的影子构建:

说明中这样写的:

Qtcreator uses shadow builds by default. To keep the cross-compiled libraries separate from anything else, they should be installed in the build directory. This involves a two step process of running qmake in qtcreator to make the build directory, installing
the libraries and then running qmake again.

我的理解是这样的,首先,要生成构建路径,然后在路径中将库安装进去,重新构建,加载库文件,然后就结束了

下面就动手吧

第一步,生成构建路径

我是将dream解压放在/usr/src目录下的

tar xvf dream-2.1.1-svn808.tar.gz

运行QTcreator,环境变量设置好以后,直接在终端输入命令qtcreator即可

选择open project,路径/usr/src/dream,选择dream.pro

进行配置

注意此时我的build directory:

/usr/src/build-dream-Android_for_armeabi_v7a_GCC_4_8_Qt_5_2_0-Debug
之后的库文件是需要安装在这里的。配置完成。
构建——>执行qmake
查看/usr/src/目录,已经生成了[code]/usr/src/build-dream-Android_for_armeabi_v7a_GCC_4_8_Qt_5_2_0-Debug
我们可以看看此时已经生成的目录中是没有需要添加的库文件的,下一步就是要将需要添加的fftw库,QWT库进行安装配置

第二步,安装库
根据指导,对于库的安装分成两中
(1)编译automake-style libraries on linux
首先配置临时环境变量
(注意我的是32位系统,所以设置BUILD_ARCH=linux-x86,如果是64位系统则BUILD_ARCH=linux-x86_64)
export BUILD_ARCH=linux-x86 export API_LEVEL=android-15 export ANDROID_NDK_ROOT=/opt/android/ndk export BUILD_DIR=/usr/src/build-dream-Android_for_armeabi_v7a_GCC_4_8_Qt_5_2_0-Debug export PATH=$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.8/prebuilt/$BUILD_ARCH/bin:$PATH export SYSROOT=$ANDROID_NDK_ROOT/platforms/$API_LEVEL/arch-arm
查看环境变量是否配置成功:
在终端输入
env |grep BUILD_ARCH,其他类似

安装fftw-3库
进入解压好的fftw-3.3.3
./configure --host=arm-linux-androideabi CFLAGS=--sysroot=$SYSROOT --prefix=$BUILD_DIR
make
make install

查看库是否已经编译在指定地方
root@yu:/usr/src/build-dream-Android_for_armeabi_v7a_GCC_4_8_Qt_5_2_0-Debug/include# ls
fftw3.f  fftw3.f03  fftw3.h  fftw3l.f03  fftw3q.f03

root@yu:/usr/src/build-dream-Android_for_armeabi_v7a_GCC_4_8_Qt_5_2_0-Debug/lib# ls
libfftw3.a  libfftw3.la  pkgconfig

(2)编译QWT
进入解压好的qwt-6.1.0目录,dream是要编译成安卓应用的,里面不需要designer模块。在目录中有INSTALL等安装说明,我们可以修改qwt.pri,修改编译时的配置,不编译的designer模块。

执行qmake
/opt/Qt/5.2.0/android_armv7/bin/qmake
make

这里也可以使用qtcreator进行编译,用qtcreator打开qwt.pro。配置。构建->清理所有项目->执行qmake->重新构建qwt.
进入qwt构建目录,make install
网上有的文章中在qwt.pro结尾添加了:
INCLUDEPATH +=/usr/local/qwt-6.1.0/include
LIBS +=-L"/usr/local/qwt-6.1.0/lib" -lqwt

我也模仿了
之后就是将库文件拷贝到对应位置
mkdir -p $BUILD_DIR/include/qwt
cp src/*.h $BUILD_DIR/include/qwt
mkdir -p $BUILD_DIR/lib
mv lib/* $BUILD_DIR/lib

第三步:在qtcreator中重新执行qmake,构建运行

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: