Ubuntu 中安装ARM-qt4.8.5


一、准备工作:

ubuntu 系统 参考 

        VirtualBox中安装Ubuntu14.04  : https://blog.csdn.net/u012166958/article/details/80040082 

二、下载qt和tslib,fsl交叉编译器
百度云下载:链接:https://pan.baidu.com/s/1_8mycKSHYeKwalBdwH4nLA 密码:pbg9


三、把gcc-4.6.2.tar 安装在/opt/   文件夹下

# cp /media/sf_share/gcc-4.6.2.tar   /home/ubuntu/tar

# cd  /home/ubuntu/tar 

# sudo tar jxvf gcc-4.6.2.tar.bz2  -C /opt/

四、配置环境
先安装 automake、libtool 两个工具
$ sudo apt-get install automake libtool
如果还没有交叉编译器的路径添加到PATH,要先把该路径添加到PATH中,本例使用的交叉编译器的路径为/opt/fsl-linaro-toolchain/bin
(一定要指定自己目标板的交叉编译器路径),则执行一下命令

$ export PATH=$PATH:/opt/gcc-4.6.2/fsl-linaro-toolchain/bin
$ export CC=/opt/gcc-4.6.2/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-gcc
$ export AR=/opt/gcc-4.6.2/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-ar 
$ export LD=/opt/gcc-4.6.2/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-ld
查看配置结果
$ echo $PATH	


五、安装部分所需文件

#sudo apt-get install ia32-libs libc6-i386

#sudo apt-get install libc6-i386

#sudo apt-get install automake libtool

#sudo apt-get install ia32-libs

#sudo apt-get install lib32ncurses5 lib32bz2-1.0

#sudo apt-get install vim
#sudo apt-get install libc6-dev
#sudo apt-get install build-essential 
#sudo apt-get install --reinstall binutils
$ sudo apt-get install lib32stdc++6
$ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 

六、、编译
配置tslib,安装路径可以通过--prefix 参数设置,这里安装到当前目录下的tslib,执行目录为:../tslib

$ ./autogen.sh 

$ $ sudo apt-get install automake libtool
 ./configure CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ --prefix=$PWD/tslib --host=arm-none-linux-gnueabi ac_cv_func_malloc_0_nonnull=yes

编译安装
$make 
$make install
完成后,tslib会安装到当前目录下有个tslib目录下进入下一步之前,先将 ~/qt-arm/tslib/tslib/etc/ts.conf文件第二行 #module_raw input 注释去掉,变成 module_raw input ,注意一定要顶格

七、编译Qt

1、解压 

$ cd ~/qt-arm
$ cp qt-everywhere-opensource-src-4.8.6.tar.bz2 ./
$ tar -xjvf qt-everywhere-opensource-src-4.8.6.tar.bz2
$ cd qt-everywhere-opensource-src-4.8.6

2、指定交叉编译器

打开解压目录下的mkspecs/qws/linux-arm-g++/qmake.conf:

用vim打开qmake.conf 后,将arm-linux-全部替换arm-none-linux-gnueabi-(注意:根据自己板子而定,并且一定要先将交叉编译器的路径加入PATH变量中),并加上-lts,然后保存退出,更改后如下:

$ vi mkspecs/qws/linux-arm-g++/qmake.conf
# modifications to g++.conf
QMAKE_CC                = /opt/gcc-4.6.2/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-gcc -lts
QMAKE_CXX               = /opt/gcc-4.6.2/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK              = /opt/gcc-4.6.2/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK_SHLIB        = /opt/gcc-4.6.2/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-g++ -lts

# modifications to linux.conf
QMAKE_AR                = /opt/gcc-4.6.2/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /opt/gcc-4.6.2/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-objcopy
QMAKE_STRIP             = /opt/gcc-4.6.2/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-strip
$ sudo apt-get install automake libtool
3、配置Qt

    如下,先通过 --prefix 指定qt安装的路径,-I后面指定上一步tslib的include路径,-L后面指定上一步tslib的lib路径

./configure --prefix=$PWD/qt4.8.6-arm -opensource -release -shared -Declarative -importdir /opt/imports -fast -no-largefile -qt-sql-sqlite -qt3support -exceptions -xmlpatterns -no-glib -no-phonon -no-mmx -no-3dnow -no-sse -no-sse2 -svg -no-webkit -qt-zlib -qt-libtiff -qt-libpng -qt-libjpeg -make libs -make tools -make examples -nomake docs -nomake demo -no-nis -no-cups -iconv -no-dbus -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16,24,32 -qt-gfx-linuxfb -qt-gfx-transformed -qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-kbd-qvfb -armfpa -no-mouse-qvfb -qt-mouse-linuxtp -qt-mouse-tslib -DQT_QLOCALE_USES_FCVT -DQT_NO_QWS_CURSOR -no-pch -I/home/ubuntu/qt/tslib/tslib/include -L/home/ubuntu/qt/tslib/tslib/lib -confirm-license
可以执行./configure --help查看参数的详细说明,根据需要来配置合适的参数
4、 编译安装  
$ make
$ make install
完成后,qt4.8.6即会安装到源码当前目录qt4.8.6-arm目录下。


八、配置编译后的qt,以便在主机上用qmake编译ARM qt应用

1、设置环境变量
在主机(如Ubuntu)当前终端下执行以下命令:

$ export PATH=$PATH:~/qt-arm/qt-everywhere-opensource-src-4.8.6/qt4.8.6-arm/bin

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/qt-arm/ qt-everywhere-opensource-src-4.8.6/qt4.8.6-arm/lib

或将以上命令添加到/etc/profile 文件中,这样系统登录时就自动设置好这些环境变量。


九、移植Qt到ARM开发板

开发板上要使用的东西就2个,一个是编译后的tslib,一个是编译后qt目录下的lib目录。如下步骤将这两个目录拷贝到开发板上。
1、打包lib
我们Qt 安装完成之后,为解决符号链接的问题,可以利用先打包,然后直接解压到开发板的做法:    
$ cd ~/qt-arm/qt-everywhere-opensource-src-4.8.6/qt4.8.5-arm
$ tar -zcf lib.tar.gz lib
$ cd ~/qt-arm/tslib
$ tar -zcf tslib.tar.gz tslib

将打包好的压缩文件 lib.tar.gz 和 tslib.tar.gz 复制到开发板,然后解压:

$ mkdir -p /usr/local/qt4.8.5-arm
$ tar xzvf lib.tar.gz -C /usr/local/qt4.8.5-arm
$ tar xzvf tslib.tar.gz -C /usr/loacal
2、设置开发板上的环境变量
在目标板上新建一个名为setqtenv的文件,
vi setqtenv
并加入以下内容: 
export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
export QTDIR=/usr/local/qt4.8.6-arm
export T_ROOT=/usr/local/tslib
export PATH=$T_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_KEYBOARD=USB:/dev/input/event1
export QWS_MOUSE_PROTO=Tslib:/dev/ input/event0
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
执行以下命令设置好qt环境变量的设置:
1. source setqtenv
ARM下qt4.8.6就可以使用了!

 
 


$ export PATH=$PATH:~/qt-arm/qt-everywhere-opensource-src-4.8.6/qt4.8.6-arm/bin$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/qt-arm/ qt-everywhere-opensource-src-4.8.6/qt4.8.6-arm/lib

猜你喜欢

转载自blog.csdn.net/u012166958/article/details/80042008