早前用qt4.6,用得挺爽,做了一些程式。感覺用c++寫介面相當的順暢。
出了qt5,那自然要試一下。
先試交叉編譯,因為一般來說pc上的編譯是沒有問題的。
交叉編譯一般要考慮,顯示方式,有沒有顯示加速硬體,有沒有觸控螢幕,有沒有鍵盤。
1下載qt5,http://releases.qt-project.org/qt5/5.0.1/single/qt-everywhere-opensource-src-5.0.1.tar.gz
2 解壓
3 修改設定檔qmake.conf檔案,qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf做如下修改
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv5te
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv5te
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = arm-none-linux-gnueabi-strip
load(qt_config)
4 編寫編譯指令碼,arm_config
make clean
./configure -v \
-prefix /home/alsa/CQTLib/emb5.0/ \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-no-opengl \
-no-sse -no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-nomake examples -nomake tools -nomake docs
5 執行arm_config檔案,產生qt相關工程
6 make
make的時候出錯了:qtextcodec.cpp undefined reference to `__sync_bool_compare_and_swap_4
經查有人也出現這個錯誤http://qt-project.org/forums/viewthread/16071
應該是編譯器的問題。目前用到的編譯是arm-none-linux-gnueabi 4.4的版本。估計要高些,如4.7或4.6版本的。。
待試