Qt5.2.1 교차 컴파일, tslib 플러그인 포함

6053 단어 학습Qt
1: 원본 다운로드 주소:
1.1: 플랫폼:
호스트: ubuntu 14.04
개발판: cpu arm-cortex-a8, 그래서 제 qmake를 설정하고 있습니다.conf에 armV7-a라고 적었어요.
QT 버전: qt everywhere opensource 5.2.1
Busybox 버전:busybox-1.22.0
arm 교차 컴파일 도구:arm-none-linux-gnueabi 4.8.1
1.2: 크로스오버 컴파일 도구:
버전:arm-none-linux-gnueabi 4.8.1
내가 사용하는 교차 컴파일 도구를 동봉합니다. 나는 그를 csdn에 업로드한 것은 백업을 위해서입니다.나의 계정이 csdn에서 60M으로 제한되어 있기 때문에 나는 서류를 8부로 나누었다.이 글을 쓸 때 올린 자료가 스마트하게 여덟 번째를 보았기 때문에 여기에는 단지 이 링크만 있다.
http://download.csdn.net/detail/mkndg/7374909
1.3: Qt5.2.1 다운로드 주소:
http://download.qt-project.org/archive/qt/5.2/5.2.1/single/qt-everywhere-opensource-src-5.2.1.tar.gz
현재 qt 다운로드 주소가 변경되었습니다:
https://download.qt.io/

1.4: tslib1.4 다운로드 주소:
http://download.csdn.net/detail/MKNDG/3291565
2: 교차 컴파일
단계는 다음과 같습니다.
1: 교차 컴파일 도구 설치
1.1: 다운로드한 교차 컴파일 도구를 압축해제(sudo로 압축해제)하고arm-4.8.1 폴더를 얻어/usr/local 아래로 이동합니다
1.2: 글로벌 환경 변수 추가:
vim/etc/bash.bashrc, 이 파일의 마지막 부분에 이 문장을 쓰십시오.
export PATH=/usr/local/arm-4.8.1/bin:$PATH

2: 교차 컴파일tslib1.4
2.1: tslib1 압축 풀기4 및 프로파일 작성
vim configTslib14.sh
이 파일에 다음 내용을 쓰고 종료를 저장합니다.
#!/bin/sh
make clean && make distclean
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
CC=/usr/local/arm-4.8.1/bin/arm-linux-gcc ./configure --host=arm-linux --prefix=/usr/local/tslib1.4 --cache-file=arm-linux.cache
make && make install
다음:
chmod a+x  configTslib14.sh && sudo ./configTslib14.sh

3: qteverywhere 패키지의 압축을 풉니다.
tar -xvf  qt-everywhere-opensource-src-5.2.1.tar.gz && cd qt-everywhere-opensource-src-5.2.1

3.1: configure 파일 작성:
vim 또는
gedit configInstallQt5.2.1.sh

필요에 따라 필요한 configure 내용을 기록합니다.
./configure -prefix /usr/local/qt-5.2.1-embedded-arm-linux -release -opensource -qt-libpng -qt-libjpeg -plugin-sql-sqlite -widgets -qt-sql-sqlite -make libs -no-cups -no-nis -no-iconv -no-dbus -no-openssl -no-iconv -no-accessibility -no-javascript-jit  -no-sse2 -silent -xplatform  linux-arm-gnueabi-g++  -nomake tools -nomake examples -nomake tests -qt-freetype  -no-glib -strip -linuxfb -plugindir /usr/local/qt-5.2.1-embedded-arm-linux/plugins -I/usr/local/tslib1.4/include -L/usr/local/tslib1.4/lib -confirm-license "$@" -verbose

3.3: qmake 구성conf
vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

내 파일 구성은 다음과 같습니다.
MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental gdb_dwarf_index
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE   += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

QMAKE_INCDIR += /usr/local/tslib1.4/include
QMAKE_LIBDIR += /usr/local/tslib1.4/lib

QMAKE_CC                = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-gcc -lts
QMAKE_CXX               = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK              = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK_SHLIB        = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++ -lts

QMAKE_AR                = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-objcopy
QMAKE_NM                = /usr/local/arm-4.8.1/bin/arm-linux-gnueabi-nm -P
QMAKE_STRIP             = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-strip

load(qt_config)

실행:
chmod a+x configInstallQt5.2.1.sh &&  sudo ./configInstallQt5.2.1.sh && sudo make -j 8 && sudo make install -j 8

3.4: qt에 tslib 플러그인 추가
vim tslibPluginInstall.sh
sudo cp qt-everywhere-opensource-src-5.2.1/qtbase/bin/qmake /usr/bin/qmake_emb_5.2.1
cd qt-everywhere-opensource-src-5.2.1/qtbase/src/plugins/generic/tslib/
sudo cp /usr/local/tslib1.4/include/tslib.h ./
qmake_emb_5.2.1
sudo make && sudo make install
chmod a+x tslibPluginInstall.sh && sudo ./tslibPluginInstall.sh

3. 컴파일된 qt 라이브러리와 tslib 라이브러리를 파일 시스템에 이식하고 프로필을 작성합니다
필요에 따라 qt 아래의 라이브러리를 파일 시스템으로 복사합니다. qt 설치 디렉터리 아래의plugins 폴더를 포함합니다
vim qtAndTsInstall.sh
#!/bin/sh
QTPATH=/usr/local/qt-5.2.1-embedded-arm-linux
TSLIBPATH=/usr/local/tslib1.4
NFSROOTPATH=~/nfsroot
rm -rf $NFSROOTPATH$QTPATH/fonts
cp ./fonts $NFSROOTPATH$QTPATH/ -arf
sudo cp $QTPATH/lib/* $NFSROOTPATH$QTPATH/ -arf
sudo cp $TSLIBPATH $NFSROOTPATH/ -arf
rm -rf $NFSROOTPATH$QTPATH/*.la $NFSROOTPATH$QTPATH/*.prl
sudo cp $QTPATH/plugins $NFSROOTPATH$QTPATH/ -arf
chmod a+x qtAndTsInstall.sh && sudo ./qtAndTsInstall.sh

파일 시스템의 프로필 파일은 다음과 같습니다.
vim ~/nfsroot/etc/profile
export QTDIR=/usr/local/qt-5.2.1-embedded-arm-linux
export PATH=$QTDIR:$PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QTDIR/fonts
export TSLIB_ROOT=/usr/local/tslib1.4
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_TSDEVICE=/dev/touchscreen
export QT_QPA_GENERIC_PLUGINS=tslib:$TSLIB_TSDEVICE
export QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE
export set QWS_DISPLAY=LinuxFb:/dev/fb0
export set QWS_SIZE=640x480
export set QT_QWS_FONTDIR=$QTDIR/fonts/
export set LD_LIBRARY_PATH=$QTDIR:$QT_QPA_PLATFORM_PLUGIN_PATH:$QT_QPA_FONTDIR:$TSLIB_ROOT/lib:$TSLIB_PLUGINDIR:$LD_LIBRARY_PATH

이렇게 하면 전체 파일 시스템의 환경이 잘 조립된다.교차 컴파일할 때 qmakeemb_5.2.1이면 됩니다.
실행할 때 바로 실행합니다. 예를 들어:./test
마지막: qq군에 가입하신 것을 환영합니다. 259787236에서 토론을 진행합니다.

좋은 웹페이지 즐겨찾기