1 下载
需要从qt开源软件编译。
下载:
wget http://download.qt.io/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz
2 build qt
(1) 首先,创建一个sh文件 – autoconfig.sh,内容:
#!/bin/sh
./configure \
-opensource \
-confirm-license \
-release -shared \
-prefix /usr/local/worksch/qt486-arm \
-embedded arm \
-xplatform qws/linux-arm-g++ \
-depths 16,18,24,32 \
-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-openssl \
-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
(2)执行./autoconfig
注意,需要将QT的几个环境变量去掉(如果设置过)。
常见问题:
The tslib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR and QMAKE_LIBDIR in /work/nfs_root/qt-everywhere-opensource-src-4.7.0/mkspecs/qws/Linux-arm-g++.
原因:
找不到arm-linux交叉编译器:
解决方法:
将 arm-linux-gcc的路径加入PATH环境变量:export PATH=$PATH:/usr/local/arm/4.8.2/bin
(2) make
在文件 ~/workbench/gcc-4.8.2/xtools/src/qt-everywhere-opensource-src-4.8.6/mkspecs/qws/linux-arm-g++/qmake.conf最后加入变量设置:
QMAKE_INCDIR=/usr/local/tslib/include/
QMAKE_LIBDIR=/usr/local/tslib/lib/
QMAKE_CC = arm-linux-gcc –lts
QMAKE_CXX = arm-linux-g++ -lts
QMAKE_LINK = arm-linux-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-g++ -lts
执行make
常见问题:
usr/local/arm/4.8.2/bin/…/lib/gcc/arm-angstrom-linux-gnueabi/4.8.2/…/…/…/…/arm-angstrom-linux-g nueabi/bin/ld: warning: libts-0.0.so.0, needed by qt-everywhere-opensource-src-4.6.0/lib/libQtGui.so, not found (try using -rpath or -rpath-link) qt-everywhere-opensource-src-4.6.0/lib/libQtGui.so: undefined reference to ts_read_raw' libQtGui.so: undefined reference to
ts_open’ undefined reference to `ts_fd’
原因:
找不到tslib的库文件
解决方法:
在文件 ~/workbench/gcc-4.8.2/xtools/src/qt-everywhere-opensource-src-4.8.6/mkspecs/qws/linux-arm-g++/qmake.conf最后加入变量设置:
QMAKE_INCDIR=/usr/local/tslib/include/
QMAKE_LIBDIR=/usr/local/tslib/lib/
QMAKE_CC = arm-linux-gcc –lts
QMAKE_CXX = arm-linux-g++ -lts
QMAKE_LINK = arm-linux-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-g++ -lts
然后继续make
(4)sudo make install
3 build protobuf 2.6.1 for linux
./configure --prefix=/usr/local/protobuf
make
make install
4 build protobuf 2.6.1 for arm
export PATH=/usr/local/protobuf/bin:$PATH
./configure --prefix=/usr/local/arm/protobuf --host=arm-linux --target=arm-linux --with-protoc=protoc
make
sudo make install
5 设置环境变量
cd ~
vim .profile
export PATH=$PATH:/usr/local/worksch/qt486-arm/bin