1:环境介绍
虚拟机:VMware_workstation_7.0
Linux 环境:ubuntu 12.04
交叉编译环境:arm-linux-gcc-4.3.2.tgz
Qt--x86:Qt_SDK_Lin32_offline_v1_1_3_en.run
Qt-arm:qt-everywhere-opensource-src-4.7.4.tar.gz
2:移植步骤
2.1.安装交叉编译环境
1.解压arm-linux-gcc-4.3.2.tgz到/usr/local/
tar xzvf arm-linux-gcc-4.3.2.tgz –C /
2、配置下编译环境路径在控制台下输入 gedit /root/.bashrc等一会出来文本编辑器后在文件最后(最后一行)加上下面代码
export PATH=/usr/local/arm/4.3.2/bin:$PATH
保存关闭后,注销当前用户,用root账号重新登录系统(使刚刚添加的环境变量生效)
此时你可以在控制台输入: arm-linux-gcc -v如果安装成功将会输出 arm-linux-gcc的版本号
2.2安装tslib1.4
1. 下载tslib1.4,解压到/home下
2. sudo apt-get install autoconf automake libtool
sudo apt-get install g++
sudo apt-get -y install x-dev libx11-dev xlibs-static-dev x11proto-xext-dev libxext-devlibqt3-mt-dev
sudo apt-get install libxtst-dev,否则编译 qvfb出错。
2. 进入解压的目录运行 执行./autogen.sh
3. 执行./configure --prefix=/opt/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes ,经过一段时间的编译
4. 执行make
若make出错,可能由于修改了/root/.bashrc未注销,此时输入arm-linux-gcc –v 若找不到命令则重新执行2.1步骤
5. 执行make install
6. 修改/opt/tslib/etc/ts.conf,把第二行的#号去掉(这样做的主要目的是为了在移植到板子上的时候,可以制定输入模块)
把# module_raw collie 前面的“#”号去掉,然后把该行移至行首,最后我的配置文件如下:
1. module_rawcollie
2. modulepthrespmin=1
3. modulevariancedelta=30
4. moduledejitterdelta=100
5. modulelinear
6. 在/etc/profile中加入
export PATH=/opt/tslib:$PATH(/opt/tslib为上面--prefix=/opt/tslib/所设的tslib1.4的安装目录)
3.编译qt4.7.4-arm
1. 将qt-everywhere-opensource-src-4.7.4.tar.gz压缩包放在/opt下,解压,重命名:
2. 在工作目录/opt/FriendlyARM/mini2440中执行:
3. #cd /opt/FriendlyARM/mini2440
#tar xvzf qt-everywhere-opensource-src-4.7.4.tar.gz
#cd /opt
#tar zxvf qt-everywhere-opensource-src-4.7.4.tar.gz
#mv qt-everywhere-opensource-src-4.7.4 qt-4.7.4-arm
#cd qt-4.7.4-arm
2. 开始进行配置选项
./configure -embedded arm -release -opensource -fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-3dnow -no-sse -no-sse2 -silent -qt-libpng -qt-libjpeg -no-libmng -no-libtiff -no-multimedia -make libs -nomake tools -nomake examples-nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-glib -qt-mouse-tslib -I /opt/tslib/include -L /opt/tslib/lib -confirm-license"$@"
./configure -embedded arm -release -opensource -fast -no-accessibility -no-scripttools -no-mmx -no-svg -no-3dnow -no-sse -no-sse2 -silent -qt-libpng -qt-libjpeg -no-libmng -no-libtiff -make libs -nomake tools -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-vnc-qt-mouse-linuxup -qvfb -qt-gfx-linuxfb -qt-gfx-multiscreen -qt-gfx-qvfb -qt-kbd-linuxinput -qt-mouse-tslib -I /opt/tslib/include -L /opt/tslib/lib -confirm-license"$@"
configure qte for embedded x86
./configure -prefix /home/devin/test/qte-4.6.3 -release -no-separate-debug-info -shared -no-fast -largefile -exceptions -accessibility -stl -qt-sql-sqlite -xmlpatterns -multimedia -audio-backend -no-phonon -phonon-backend -svg -webkit -javascript-jit -script -scripttools -no-declarative -qt-zlib -qt-gif -no-libtiff -qt-libpng -no-libmng -qt-libjpeg -openssl -nis -no-cups -iconv -pch -qt-gfx-linuxfb -qt-gfx-multiscreen -qt-gfx-qvfb -no-gfx-transformed -no-glib -dbus -qvfb -qt-mouse-qvfb -plugin-mouse-tslib-nomake tools -nomake examples-nomake docs -nomake demo -opensource -confirm-license -qt-mouse-linuxinput -embedded x86 -xplatform qws/linux-x86-g++ (-arch x86 -no-armfpa -depths 2,8,16,32)
此步可能提示不成功,The tslib functionality test failed!
我的做法是重新安装了tslib就解决了。
3. #gmake 开始进行交叉编译gmake 此过程要一个多小时
4. #gmake install 在交叉编译成功后运行gmake install安装,这里会默认安装到/usr/local/Trolltech/QtEmbedded-4.7.4-arm
5.在qt-4.7.4-arm目录里面建立setenv-embedded.sh
#gedit setenv-embedded.sh
输入以下:
### useage: . setenv.sh
export QT4DIR=/opt/QtSDK/Desktop/Qt/474/gcc
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.7.4-arm
export PATH=$QTEDIR/bin:$QT4DIR/bin:$PATH
export LD_LIBRARY_PATH=$QT4DIR/lib:$QTEDIR/lib:$LD_LIBRARY_PATH
echo "set qt-4.7.4 env PATH successful !"
保存退出,然后运行 . setenv.sh
4. 这个时候qte的编译就成功了
4.配置 QtCreator
1. 新建项目完成后,在菜单栏上选择tools->option
2. 在左边Qt4中设定版本,在Manual中添加 qte的版本点击add然后选择qte的安装路径选择/usr/local/Trolltech/QtEmbedded-4.7.4-arm/bin/qmake此时旁边应该会出现红色叉号,
3 在ToolChains中选择arm-linux-g++的路径同理在manual中手动添加GCCE(注:不可选择GCC,不然make的时候会出现 no struction错误) 路径/usr/local/arm/4.3.2/bin/arm-linux-g++
4.在project中选择qte的版本进行编译即可
5.单独编译qvfb
1.tar xvf qvfb-1.1.tar.gz
2.cd qvfb-1.1
3.安装qt3 lib inc # apt-get install libqt3-headers libqt3-mt-dev
而后,再configure 就不会出现同样的问题了。如下:
# ./configure
如果找不到X11库和头文件,需要加上如下选项:
# ./configue --x-includes=/usr/lib/X11 --x-libraries=/usr/lib/
如果找不到qt3库和头文件,需要加上如下选项:
# ./configure --with-qt-includes=/usr/include/qt3/ --with-qt-libraries=/usr/lib/
4. ./configure –withqt3的头文件和路径
5,make make install