主机平台:Ubuntu10.04
硬件平台:FL2440
交叉编译器:arm-linux-gcc-4.3.2
一、安装交叉编译器
1、下载交叉编译工具arm-linux-gcc-4.3.2.tgz,并解压到/usr/local/arm下
- tar zxvf arm-linux-gcc-4.3.2.tgz –C /
此时会生成/usr/local/arm/4.3.2
2、 添加交叉编译器到环境变量中
- #gedit ~/.bashrc
添加
export PATH=$PATH:/usr/local/arm/4.3.2/bin
3、查看交叉编译器
- #arm-linux-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin
Thread model: posix
Target: arm-none-linux-gnueabi
Configured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin
Thread model: posix
二、安装触摸屏校验工具tslib-1.4
1、下载tslib-1.4.tar.gz,并解压到/home/arm/qte4.6.3下
2、进入
tslib-1.4下,执行
- #Source autogen.sh
3、执行配置命令
- ./configure --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
4、编译
- #make
5、安装
- #make install
正确完成后会在/usr/local/下生成tslib,
tslib中放置我们需要的库文件
三、编译Qt4.6.3
1、下载qt-embedded-4.6.3-arm.tar.gz,解压到/home/arm/qte4.6.3下
2、进入
qt-embedded-4.6.3-arm下,执行
- ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-g++ -depths 16,18,24 -fast -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -little-endian -host-little-endian -no-qt3support -no-libtiff -no-libmng -no-opengl -no-mmx -no-sse -no-sse2 -no-3dnow -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -no-cups -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-separate-debug-info -nomake examples -nomake tools -nomake docs -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
注:这里的
depths 16,18,24
配置要根据实际情况相应修改,如果不清楚可以去掉
3、编译
- make
4、安装
- make install
正确完成后,根据配置情况(步骤2)可以发现会生成
/usr/local/Trolltech/QtEmbedded-4.6.3
-arm,这里生成的库都是arm下的
四、移植库到FL2440开发板
1、将编译好的tslib库和Qt4.6.3库移植到开发板中,移植的时候目录跟主机中的相同,目录如下
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/fonts
/usr/local/tslib
五、移植
Qt4.6.3库到FL2440开发板
1、FL2440开发板中建立环境变量
打开开发板中文件
- vi /etc/profile
添加
- export QTDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm
- export QPEDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm
- export TSLIB_ROOT=/usr/local/tslib
- export PATH=$QTDIR/bin:$PATH
- export TSLIB_CONSOLEDEVICE=none
- export TSLIB_FBDEVICE=/dev/fb0
- export TSLIB_TSDEVICE=/dev/input/event0
- export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
- export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
- export TSLIB_CALIBFILE=/etc/pointercal
- export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
- export QWS_DISPLAY=LinuxFb:/dev/fb0
- export QWS_SIZE=480x640
- export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
修改开发板中文件
- #vi /usr/localtslib/etc/ts.conf
去掉#module_raw input前面的#和空格
六、编译开发板上可执行的QT程序
1、设置QT编译的环境
在主机/root目录下新建文件qte_env,添加如下内容
- export QTDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm
- export PATH=$QTDIR/bin:$PATH
- export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
2、执行
#. qte_env(.后有空格)
3、编译一个简单的Qt程序-hello
4、进入hello目录下,执行
- #qmake -project
- #qmake
- #make
5、将生成的hello二进制文件下载到FL2440开发板中
6、修改权限,执行
- #./hello -qws
效果如下
转载于:https://blog.51cto.com/njfylong/880227