准备:
1.Qt源码包 qt-everywhere-opensource-src-4.7.0.tar.gz
2.交叉编译器 arm-eabi-4.4.0.tar.bz2
3.触摸屏校验工具:tslib-1.4.tar.gz
4.开发板omap
编译安装:
1.首先安装交叉编译器arm-eabi-4.4.0.tar.bz2(这个很容易,不多说了)
安装tslib:
执行命令cd tslib,进入tslib当前目录,接着执行命令如下
root@lig:/arm/qt# cd tslib/
root@lig:/arm/qt#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
root@lig:/arm/qt#./configure --host=arm-none-linux-gnueabi --prefix=/usr/local/tslib --cache-file=arm-none-linux-gnueabi.cache
root@lig:/arm/qt# make
root@lig:/arm/qt# make install
成功后可在/usr/local/下生成tslib,进入tslib可以看到有bin include lib etc四个文件夹。我们暂时先不理它,在接下来的移植过程中才用到这些文件夹。
这里我是把tslib里面的文件打包拷贝到开发板的/usr/local/tslib里面。
编译安装arm版Qt,首先配置如下:
root@lig:/arm/qt/qt-everywhere-opensource-src-4.7.0# vim a.sh
#!/bin/sh
# for arm
./configure -prefix /opt/EmbedSky/qt-4.7-arm -embedded arm -release -opensource -qt-sql-sqlite -system-sqlite -plugin-sql-sqlite -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-gnueabi-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/usr/local/tslib/include -L/usr/local/tslib/lib -confirm-license "$@" -continue
带红色的字体部分要改成对应的目录 -I /-L 指定前面编译出的tslib的路径
#make
#make install
/*会安装库、字体等文件到 /opt/EmbedSky/qt-4.7-arm目录。*/
拷贝/opt/QtEmbedded-4.7.3/lib目录下的以下文件到根文件系统/usr/lib目录下:
#cp -a /opt/QtEmbedded-4.7.3/lib.tar.gz rootfs/usr/lib
(这里我是把lib打包拷贝到开发板/usr/lib/)
step 3:
在根文件系统下建立目录
#mkdir /usr/lib/fonts
将/arm/qt/qt-everywhere-opensource-src-4.7.0/lib/fonts目录下的字体unifont_160_50.qpf拷到开发板对应的目录
#cp /arm/qt/qt-everywhere-opensource-src-4.7.0/lib/fonts/unifont_160_50.qpf /usr/local
step 4:
使QT支持jpg格式的图片
cp /arm/qt/qt-everywhere-opensource-src-4.7.0/plugins/imageformats/* /usr/lib/
同时在应用程序main程序中加入 app.addLibraryPath("/usr/lib/");
提示没有libstdc++.so.6
在/usr/local/arm-2007q3/arm-none-linux-gnueabi/lib里面有libstdc++.so.6,把libstdc* 拷贝到/usr/lib下
建立文件夹: /opt/EmbedSky/qt-4.7-arm/lib/fonts