如何在TI AM3358 (英贝特SBC8600B)ARM Linux环境中搭建QT运行环境

如何在TI AM3358 (英贝特SBC8600B)ARM Linux环境中搭建QT运行环境

我们通常都会使用Qt在ARM Linux下开发带有界面的应用程序。这样我们就需要在没有Qt环境的linux板卡上安装环境。
通常有三个步骤。
1. 下载开源qt库。
2. 编写configure文件
3. 配置qmake.conf
4. 编译,安装qt库
5. 移植环境到ARM板卡
我使用TI 的AM3358板卡作为安装环境的例子向大家演示:

1. 开发环境

主机:Ubuntu12.04 32bit
Arm板:
硬件:AM3358
系统:linux 3.2.0
编译器版本:GCC 4.3.3

2. 下载开源qt库

开源库可以从Qt官方网站下载,我的文件为qt-everywhere-opensource-src-4.7.2.tar.gz。该Qt版本为4.7.2。
注:Qt的版本通常都受制于你的ARM板卡的Linux系统GCC编译版本。低版本的GCC将无法编译通过高版本的Qt。如我所选用板卡的GCC版本为4.3.3就无法编译Qt5.0.0以上的版本。由于QT5需要C++11的支持,故而最低的GCC版本也需要4.7以上。
将开源库解压在你的主机Linux中。

3. 编写configure文件

在Qt的解压文件下创建一个脚本文件configure.sh,添加内容如下:

./configure \
-prefix /home/jerry/am3358/qt4.7.2/qt \ #这里指定了开源qt库的路径 -opensource \ -confirm-license \ -release -shared \ -embedded arm \ -xplatform qws/linux-arm-gnueabi-g++ \ #这里指定了qmake.conf的路径 -depths 4,8,12,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-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环境支持的功能。

4. 配置qmake.conf

通常原厂都会在自己的ARM芯片添加一些特性,所以qmake.conf文件将会根据芯片做一些修改。
我的该文件如下:

# qmake configuration for building with arm-linux-g++


include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)

# modifications to g++.conf
#Toolchain

#Compiler Flags to take advantage of the ARM architecture
QMAKE_CFLAGS_RELEASE =   -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp

QMAKE_CC = /home/jeremy/am3358/arm-2009q1/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX = /home/jeremy/am3358/arm-2009q1/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK = /home/jeremy/am3358/arm-2009q1/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = /home/jeremy/am3358/arm-2009q1/bin/arm-none-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR = /home/jeremy/am3358/arm-2009q1/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = /home/jeremy/am3358/arm-2009q1/bin/arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = /home/jeremy/am3358/arm-2009q1/bin/arm-none-linux-gnueabi-strip

load(qt_config)

注:
1. /home/jeremy/am3358/arm-2009q1/bin/arm-none-linux-gnueabi- 是我的gcc工具的绝对路径
2. QMAKE_CFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
是厂家根据其内核给出的配置

5. 编译,安装qt库

在Qt开源库目录下执行source configure.sh。
待配置完毕后执行make命令。
待编译完成后执行make install INSTALL_ROOT=/home/ qt4.7.2命令。将会在/home/ qt4.7.2安装该Qt库。

6. 移植环境到ARM板卡

将/home/ qt4.7.2/qt/lib下的文件复制到ARM板的/home路径下。
在ARM板的终端下执行如下命令配置环境:

export LD_LIBRARY_PATH=/home/lib
export QT_QWS_FONTDIR=/home/lib /fonts

Qt环境在ARM Linux的搭建就完成了。

你可能感兴趣的:(qt,移植,ARM)