您的位置:首页 > 运维架构 > Linux

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

2016-01-20 08:59 447 查看

如何在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的搭建就完成了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: