Qt5 for ARM环境搭建及tslib库制作

本文主要记录本人在mini2440上制作tslib库和搭建Qt 5.6环境的过程


1.tslib库制作
  1. 复制tslib-1.4.tar.gz到自己的目录中,输入如下命令解压。
tar -xzf tslib-1.4.tar.gz
  1. 输入命令cd tslib进入tslib目录,输入如下命令,配置tslib,
./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes CC=arm-linux-gcc CXX=arm-\linux-g++ -prefix=/home/eurphan/temp/tslib_arm/tslib_install

其中-prefix=/home/eurphan/temp/tslib_arm/tslib_install指定了后面tslib的安装目录。
然后输入make编译,输入make install安装到上面指定的目录。
3. 进入tslib_install目录,输入命令vi etc/ts.conf编辑配置文件,将第二行# module_raw input前面的#和空格删除。
4. 在mini2440根文件系统/opt目录中新建tslib目录,再将tslib_install目录中的所有文件夹和文件复制到根文件系统/opt/tslib文件夹中。
5. 在根文件系统/etc目录中新建文件profile,输入如下内容:

#!/bin/sh
export T_ROOT=/opt/tslib
export LD_LIBRARY_PATH=/opt/tslib/lib:$LD_LIBRARY_PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event1
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal

在如上内容中,fb0表示帧缓冲设备0,在这里是我们的LCD设备,event1是我们的触摸屏设备,现在我们的tslib环境便搭建好了,我们可以进入/opt/tslib/bin目录,输入./ts_calibrate校准触屏,输入./ts_test测试触屏。


2.Qt5.6 ARM环境搭建
  1. 到http://download.qt.io/archive/qt/ 下载源码包 qt-everywhere-opensource-src-5.6.0.tar.gz,放到自己的目录中,输入如下命令解压。
tar -xzf qt-everywhere-opensource-src-5.6.0.tar.gz
  1. 输入如下命令,进入配置文件目录,编辑配置文件
cd qt-everywhere-opensource-src-5.6.0/qtbase/mkspecs/linux-arm-gnueabi-g++/
vi qmake.conf
  1. 改成以下内容,实际应需要根据自己的开发环境作出相应改变:
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
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
# modifications to linux.conf
QMAKE_AR                = arm-linux-ar cqs
QMAKE_OBJCOPY           = arm-linux-objcopy
QMAKE_NM                = arm-linux-nm -P
QMAKE_STRIP             = arm-linux-strip
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_RELEASE += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t
load(qt_config)
  1. 然后进入源码根目录qt-everywhere-opensource-src-5.6.0,根据自己的需要修改并执行如下配置命令:
./configure \
        -prefix /home/eurphan/temp/qt_lib_arm/qt5.6.0-out \
        -confirm-license \
        -opensource \
        -release  \
        -make libs \
        -xplatform linux-arm-gnueabi-g++ \
        -optimized-qmake \
        -pch \
        -qt-sql-sqlite \
        -qt-libjpeg \
        -qt-libpng \
        -qt-zlib \
        -no-opengl \
        -no-sse2 \
        -no-openssl \
        -no-nis \
        -no-cups \
        -no-glib \
        -no-dbus \
        -no-xcb \
        -no-xcursor -no-xfixes -no-xrandr -no-xrender \
        -no-separate-debug-info \
        -nomake examples -nomake tools -nomake tests -no-iconv \
		-tslib \
		-I /home/eurphan/temp/tslib_arm/tslib_install/include \
		-L /home/eurphan/temp/tslib_arm/tslib_install/lib
  1. 执行如下命令编译并安装,嗯,,,编译的过程会比较久。
make
make install
  1. 此时,在qt5.6.0-out目录中便拥有了我们需要的动态链接库,嗯,,,还有一些其他的没用的文件。在我们的根文件系统/opt目录中,新建目录qt,然后将qt5.6.0-out中的lib和plugins两个文件夹复制过去便可,如果lib和plugins中的一些库文件我们不需要用到,将其删除以节省空间也是可以的。
  2. 最后,输入vi /etc/profile,在tslib环境变量后面添加如下内容,配置qt环境变量。
export QTEDIR=/opt/qt
export LD_LIBRARY_PATH=/opt/qt/lib: LD_LIBRARY_PATH
export QT_QPA_FONTDIR=$QTEDIR/lib/fonts 
export QT_QPA_GENERIC_PLUGINS=tslib
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTEDIR/plugins 
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=240x320:mmSize=240x320:offset=0x0:tty=/dev/tty1

现在ARM开发板的Qt环境便搭建好了,下面我们搭建PC端的Qt交叉编译环境。

  1. 打开qtcreator,点开Tools->Options->Build & Run,在Compilers中,Add一个GCC类型编译器,名字命名为ARMGCC,Compiler path这一栏选择我们交叉编译工具链中的arm-linux-g++,点击Apply;然后切换到Qt Versions,点Add,将我们qt源码中的qtbase/bin中的qmake添加进来,名字就命名为ARM-qmake吧,点击Apply,然后切换到Kits项中,点击Add,名字填ARM,Compiler填我们刚刚新建的ARMGCC,Qt version填ARM-qmake,Device type改为Generic Linux Device,然后,OK,PC开发环境也搭建好了。此时,我们新建项目的时候,可以看到有ARM和Desktop两个选项了,我们可以在Desktop下编写好程序,然后用ARM构建,最后将可执行文件copy到根文件系统中就可以执行了。。。

你可能感兴趣的:(Qt)