如何在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 32bitArm板:
硬件: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的搭建就完成了。
相关文章推荐
- CentOS 伪装安装TSA for DB2
- Linux下vi替换字符命令操作实例
- Linux下的一个快速跳转到上N层目录的简单方法
- Linux下的一个快速跳转到上N层目录的简单方法
- Linux 下性能分析公会nmon使用方法
- linux线程同步(4)-自旋锁
- 在vmwate的CentOS7的虚拟机中安装在rails 4.2.0 版本以后,无法通过其他机器访问 3000端口的问题
- awk分割字符串
- wget调试信息重定向到文件
- linux线程同步(3)-读写锁
- linux文件一致性校验
- linux centos 安装mediawiki
- Linux 上最好的五款音乐播放器
- Linux安装MySQL-二进制安装
- Linux下修改MySQL的root用户密码
- SecureCRT连接Linux关键的
- Linux系统下以RPM方式安装
- Installation Rootkit Hunter (rkhunter) on CentOS 5
- ARM9:如何将linux2.6.38内核移植到TQ2440
- Linux 使用cp命令的错误