转载地址:点击打开链接
转载版本 未通过编译 ,可使用以下修改过的版本编译通过,此版本很多东西为编译
交叉编译QT库
将下载的qt-everywhere-opensource-src-5.7.0.tar.gz执行如下命令解压:
tar -vxf qt-everywhere-opensource-src-5.7.0.tar.gz
cd qt-everywhere-opensource-src-5.7.0
- 1
- 2
- 3
修改交叉编译架构用到的信息:
gedit qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
- 1
- 2
修改如下图所示:将arm-linux-gnueabi-改成海思的编译器
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linux #eglfs
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)
# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabi-gcc
QMAKE_CXX = arm-linux-gnueabi-g++
QMAKE_LINK = arm-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy
QMAKE_NM = arm-linux-gnueabi-nm -P
QMAKE_STRIP = arm-linux-gnueabi-strip
load(qt_config)
configue配置 :
./configure -prefix /opt/Qt5.7.0 -confirm-license -opensource -static -release -xplatform linux-arm-gnueabi-g++ -qt-libjpeg -no-opengl -no-xcb -no-largefile -no-accessibility -no-sse2 -nomake tests -nomake examples -nomake tools -no-openssl -no-nis -no-cups -no-dbus -no-sql-sqlite -skip qt3d -skip qtactiveqt -sk ip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdo c -skip qtgamepad
上述命令自动生成Makefile文件。
执行命令启动编译:
make -j5
- 1
- 2
编译大概四十分钟
编译结束后,执行安装命令:
sudo make install
- 1
- 2
将/opt/arm-qt 和/opt/tslib1.4 拷贝到开发板的文件系统中对应的目录中。
设置QT的交叉编译环境
安装qtcreator
进入qtcreator开发环境
在菜单中选择Tools——Options,在弹出的对话框中,选择Build & Run,选择标签Compilers,按下图设置,选择C++交叉编译器,如下图所示:
切换到Qt Versions标签,点击“Add”按钮,选择qmake,如图所示:
选择完成,按“OK”按钮,设置如图所示:
切换到Kits标签,点击“Add”按钮,然后设置如下图所示:
在4412开发板上配置tslib并交叉编译一个能够在4412开发板上运行的QT应用程序
把字库Ubuntu_L.ttf 等字库拷贝到 /opt/arm-qt/lib/fonts
在开发板串口命令窗口中输入:
vi /etc/profile
- 1
- 2
将其修改为以下内容:
export TSLIB_ROOT=/opt/tslib1.4
export QT_ROOT=/opt/qt-5.7.0
export TSLIB_TSDEVICE=/dev/input/event2
export TSLIB_TSEVENTTYPE=input
export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf
export TSLIB_PLUGINDIR=/opt/tslib1.4/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export QWS_MOUSE_PROTO=tslib:/dev/input/event2
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$TSLIB_ROOT/lib:$TSLIB_ROOT/lib/
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export QT_QPA_GENERIC_PLUGINS=tslib
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
保存退出,执行命令(一定要执行,否则可能报错):
source /etc/profile
- 1
- 2
然后在串口命令窗中输入 vi /opt/tslib1.4/etc/ts.conf 来配置触摸屏
把第二行的注释去掉,把ts设置成输入模式(注意把前面的空格也去掉)
将编译得到的可执行文件拷贝到开发板中文件系统的/bin目录,运行该程序。
注意:不用开发板的触摸屏输入设备不一样,如tiny4412是dev下的1-wire字样的输入设备。需要修改TSLIB_TSDEVICE。