環境:VMware+Fedora14
嵌入式平臺:S3C6410
交叉編譯工具鏈:arm-linux-gcc 4.5.1
源碼包:arm-qt-extended-4.4.3-20101105.tgz tslib-1.4.tar.gz
一、 搭建TI的編譯環境主要是arm-linux-gcc和gcc的安裝
二、交叉編譯安裝 tslib-1.4將下載的tslib-1.4.tar.gz放到pc目錄/usr/local/myfile/arm下
#tar zxvf tslib-1.4.tar.gz
#cd tslib
#./autogen.sh
#./configure --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
其中ac_cv_func_malloc_0_nonnull=yes 是爲解決如下編譯錯誤設置的
ts_test.o: In function `main': ts_test.c:(.text+0x1d8): undefined reference to `rpl_malloc' fbutils.o: In function `open_framebuffer': fbutils.c:(.text+0xa20): undefined reference to `rpl_malloc' collect2: ld returned 1 exit status |
#make
#make install
將/usr/local/tslib整個目錄複製到arm板系統文件/opt目錄下
三、 編譯及運行Qt-extended-4.4.3把arm-qt-extended-4.4.3-20101105.tgz安裝包放到/usr/local/myfile/arm目錄下
#tar zxvf arm-qt-extended-4.4.3-20101105.tgz
#cd arm-qt-extended-4.4.3
#tar xvzf qt-extended-opensource-src-4.4.3.tar.gz
#mkdir builddir
#QTOPIA_PREFIX_DIR=/opt/Qtopia4.4.3
#export QTOPIA_DEPOT_PATH=$PWD/qt-extended-4.4.3
#export QPEDIR=$PWD/builddir
#export PATH=/opt/FriendlyARM/mini6410/linux/arm-gcc-4.4.1/bin/:$PATH
#export LC_CTYPE="en_US"
#export LANG="en_US"
#export LANGUAGE="en_US"
#cd $QPEDIR
# echo yes | $QTOPIA_DEPOT_PATH/configure \
-ui-type mobile \
-xplatform linux-arm-g++ \
-arch arm \
-release \
-clean \
-prefix ${QTOPIA_PREFIX_DIR} \
-sound-system oss \
-build-qt \
-no-sxe \
-no-ssl \
-no-v4l2 \
-no-vpn \
-no-phonon \
-no-libamr \
-dynamic-rotation \
-mediaengines cruxus \
-remove-mediaengine gstreamer,helix \
-pictureflow \
-remove-module bluetooth,drm \
-no-dbus \
-no-dbusipc \
-add-displaysize 240x320 \
-extra-qt-embedded-config "-embedded arm -xplatform qws/linux-arm-g++ -no-cups -nomake examples -nomake demos -qt-libjpeg -qt-libmng -qt-libpng -no-dbus -depths 16,32 -qt-gfx-linuxfb -qt-gfx-transformed -no-gfx-qvfb -no-gfx-vnc -no-gfx-multiscreen
-qt-kbd-tty -no-kbd-usb -no-kbd-sl5000 -no-kbd-yopy -no-kbd-vr41xx -no-kbd-qvfb -qt-mouse-tslib -no-webkit -no-openssl -no-phonon -no-phonon-backend -no-nas-sound -no-exceptions -svg" \
-extra-qt-config "-no-webkit" \
2>&1 | tee ../qtopiaconfig.log
#bin/qbuild 2>&1 | tee ../qtopiamake.log
#bin/qbuild image
出現Qt Extended has been installed.則編譯安裝成功。編譯生成的文件在builddir/image目錄下。其實我們完全可以寫一個shell文件進行整體編譯
2、將builddir/image下所有文件複製到你的嵌入式文件系統的/opt/Qtopia4.4.3/目錄下。修改etc/profile文件:
if [ -e /etc/friendlyarm-ts-input.conf ] ; then
. /etc/friendlyarm-ts-input.conf
fi
true ${TSLIB_TSDEVICE:=/dev/touchscreen}
TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_TSDEVICE
export TSLIB_CONFFILE
export TSLIB_PLUGINDIR=/opt/tslib/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export QTDIR=/opt/Qtopia4.4.3
export QPEDIR=/opt/Qtopia4.4.3
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
export CAMERA_DEVICE=/dev/video2
export QWS_KEYBOARD=TTY:/dev/tty1
export KDEDIR=/opt/kde
嵌入式arm上的環境搭建好後,可以運行一些例子進行測試
也可以在pc機的linux下運用交叉編譯環境編譯一個小程序,然後在移到arm開發板上,如果程序能夠運行,所以交叉編譯器和arm上Qt環境已經成功。
將pc機linux下到/root/.bash-profile文件下更改環境變量PATH
PATH=$PATH:$HOME/bin:/usr/local/myfile/arm/arm-qt-extended-4.4.3/builddir/qtopiacore/target/bin
#source /root/.bash-profile
qmake就可以作爲全局量進行交叉編譯,這樣方便得多