QT 4.7.3 交叉编译环境搭建
测试平台
宿主机平台:Ubuntu 12.04.4 LTS
目标机:Easy-ARM IMX283
目标机内核:Linux 2.6.35.3
交叉编译器:arm-linux-gcc 4.4.4
tslib 1.4 下载 https://gitlab.com/tslib/tslib/-/archive/1.4/tslib-1.4.tar.gz
qt-4.7.3 源码下载 http://download.qt.io/archive/qt/4.7/qt-everywhere-opensource-src-4.7.3.tar.gz
1. tslib移植
详细参照上节《tslib移植arm及使用》
./autogen.sh
./configure --prefix=/home/vmuser/workspace/vm_tools/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes CC=arm-fsl-linux-gnueabi-gcc
make
make install
2. QT源码编译与安装
1.编译qt
1)解压:
tar xzvf qt-everywhere-opensource-src-4.7.3.tar.gz
cd qt-everywhere-opensource-src-4.7.3
2)编译配置(裁剪QT)
./configure -prefix /home/vmuser/workspace/vm_tools/qt-4.7.3-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -depths 16,18,24,32 -fast -lrt -little-endian -optimized-qmake -pch -qt-sql-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype -no-largefile -no-accessibility -no-qt3support -no-webkit -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-libtiff -no-libmng -no-openssl -nomake examples -nomake docs -nomake demos -no-separate-debug-info -no-qvfb -no-cups -no-gtkstyle -no-xrender -no-glib -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-tslib -qt-mouse-linuxinput -qt-kbd-linuxinput -qt-gfx-linuxfb -qt-gfx-transformed -D QT_QWS_CLIENTBLIT -I /home/vmuser/workspace/vm_tools/tslib/include -L /home/vmuser/workspace/vm_tools/tslib/lib
或编写 shell 脚本
./configure \
-prefix /home/vmuser/workspace/vm_tools/qt-4.7.3-arm \
-opensource -confirm-license -release -shared -embedded arm \
-xplatform qws/linux-arm-gnueabi-g++ \
-depths 16,18,24,32 -fast -lrt -little-endian -optimized-qmake \
-pch -qt-sql-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype \
-no-largefile -no-accessibility -no-qt3support -no-webkit \
-no-mmx -no-3dnow -no-sse -no-sse2 \
-no-libtiff -no-libmng -no-openssl \
-nomake examples -nomake docs -nomake demos \
-no-separate-debug-info -no-qvfb -no-cups \
-no-gtkstyle -no-xrender -no-glib \
-qt-mouse-pc -qt-mouse-linuxtp \
-qt-mouse-tslib -qt-mouse-linuxinput -qt-kbd-linuxinput \
-qt-gfx-linuxfb -qt-gfx-transformed \
-D QT_QWS_CLIENTBLIT \
-I /home/vmuser/workspace/vm_tools/tslib/include \
-L /home/vmuser/workspace/vm_tools/tslib/lib
备注:最后3句是指定使用触摸屏,并制定tslib1.4的安装目录的头文件以及库函数。
裁剪qt编译配置详解
编译安装配置:
-prefix <dir> qt 编译安装路径(默认 /usr/local/Trolltech/Qt-4.7.3)
-opensource 编译和链接qt的开源版本(商业版使用 -commercial )
-confirm-license
-release 编译和链接qt时关闭调试功能
-shared 创建和使用qt共享库(-static 创建和使用qt静态库)
-embeddedarm
-xplatform qws/linux-arm-gnueabi-g++ (使用arm下的编译器进行编译否则无法在板子上运行)
-depths 4,8,16,18,24,32
-fast 通过只为库和子目录目标生成makefile文件来快速配置qt,所有其他生成文件都创建为包装器,运行qmake。(-no-fast 配置qt 为所有工程文件生成makefile)
-little-endian (小端存储)
-optimized-qmake (构建qmake优化)
以下为加入的一些插件:
-pch (使用预编译头支持)
-qt-sql-sqlite (加入qt下的数据库)
-qt-gif (默认支持gif图片)
-qt-libjpeg ( jpeg图片)
-qt-zlib (数据压缩)
-qt-libpng (png形式的图片)
-qt-freetype (FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎)
-little-endian (小端存储)
-host-little-endian (主机小端存储)
去掉以下插件因为设计到ARM开发板是否支持的问题
-no-largefile 禁止大文件支持
-no-accessibility 不编译辅助功能支持
-no-qt3support 禁止qt3支持功能
-no-libtiff (去掉读写标签图像文件格式的库)
-no-libmng (制作一些动画的库)
-no-opengl (OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库,此处不用它)
-no-webkit 不构建webkit模块 (WebKit 是一个开源的浏览器引擎)(构建 -webkit)
-no-svg 不构建svg模块 (构建 -svg)
-no-mmx 不使用mmx指令编译(多媒体扩展用于图形描绘)
-no-3dnow 不使用3dnow指令编译(3Dnow指令集技术其实就是21条机器码的扩展指令集)
-no-sse (SSE是指令集的简称,它包括70条指令,其中包含单指令多数据浮点计算、以及额外的SIMD整数和高速缓存控制指令)
-no-sse2 (SIMD 流技术扩展 2或数据流单指令多数据扩展指令集 2)指令集)
-no-openssl (为网络通信提供安全及数据完整性的一种安全协议)
-no-qvfb ( Qvfb是为qtopia做的一个虚拟frambuffer的应用程序,它的最终目的就是把qtopia应用程序运行的的结果显示在qvfb上(实际中是要通过linux的frambuffer驱动显示在lcd屏上的),并提供键盘、鼠标的外设仿真。从而方便研发阶段,用户在pc端就可以完成qtopia的调试工作,极大的提高了工作效率。 )
-no-phonon (音频播放的依赖库里面有很多直接可以控制音频播放的函数,做过播放器的人肯定熟悉)
-no-nis (一种类似防火墙的工具网上说是诺顿网络安全特警简称)
-no-cups (CUPS(Common UNIX Printing System)是Fedora Core3中支持的打印系统,它主要是使用IPP(Internet Printing Protocol)来管理打印工作及队列)
-no-glib (用于GTK 开发环境)
-no-xcursor (不清处用途,应该是一种软件依赖的文件)
-no-xfixes (XFixes is an X window system extension which makes useful additions to the X11 protocol)
-no-xrandr (窗口大小分辨率的调整)
-no-xrender
-no-separate-debug-info 不保存调试信息到单独的.debug文件
-no-gtkstyle 不构建集成的GTK主题
-nomake examples 不生成例程代码
-nomake tools 不生成工具
-nomake docs 不生成文档
设置 tslib为鼠标驱动、校正
-qt-mouse-tslib
-I /home/vmuser/workspace/vm_tools/tslib/include
-L /home/vmuser/workspace/vm_tools/tslib/lib
修改源代码
修改qt-everywhere-opensource-src-4.7.3/mkspecs/qws/linux-arm-g++/qmake.conf 文件(添加lts参数):
-lts 表示链接ts库
3)make
4)make install
QT 4.7.3 交叉编译环境搭建的更多相关文章
- YA157C交叉编译环境搭建
目录 1.开发板简介 3.主机搭建交叉编译环境 4.编译第一个ARM Linux程序--Hello World 5.在开发板上运行Hello World程序 6.ssh登录开发板 7.注意 8.she ...
- Exynos4412交叉编译环境搭建
Exynos4412交叉编译环境搭建 交叉编译:在PC机(x86平台)上开发程序,在ARM板上运行,提高开发.编译速度. 环境: Tiny4412SDK1506开发板 需要软件: arm-linux- ...
- Ubuntu系统下arm-linux-gcc交叉编译环境搭建过程
搭建所需环境Linux版本:Ubuntu 14.10 交叉编译器版本:arm-linux-gcc-4.4.3资源链接 何为交叉编译环境搭建交叉编译环境,即安装.配置交叉编译工具链.在Ubuntu环境下 ...
- iMX6 yocto平台QT交叉编译环境搭建
转:https://blog.csdn.net/morixinguan/article/details/79351909 . /opt/fsl-imx-fb/4.9.11-1.0.0/environm ...
- Zedboard学习(二):zedboard的Linux下交叉编译环境搭建 标签: 交叉编译linuxzedboard 2017-07-04 23:49 19人阅读
环境准备 首先肯定是要下载xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin文件,这是官方提供的linux下交叉编译链安装文件,下载地址为:https://p ...
- Android独立交叉编译环境搭建
我们经常需将一些C/C++源码编译成本地二进制,直接在android的linux内核上运行,这是就需要进行交叉编译.由于Android的运行环境核普通Linux又区别,所以常规方式针对ARM进行交叉编 ...
- Zynq7000开发系列-4(新:Xilinx交叉编译环境搭建)
一.前言 本来上一篇文章已经讲了Xilinx交叉编译环境的搭建,但是我在后续的使用中发现:使用2011年版本的交叉编译链编译OpenCV 3.1.0时出现错误: 网络搜索一番,查明是交叉编译链的问题 ...
- Zynq7000开发系列-3(Xilinx交叉编译环境搭建)
一.前言 上一篇文章说了,在开发之前必须先搭建起交叉编译环境,于是这里我们就介绍一下环境的搭建过程. 其实在所安装的Vivado HLx 2016.4中就包含了Xilinx SDK,在该SDK上即可开 ...
- qt4.7.0 交叉编译环境搭建经验总结
一.前期软件准备: 1 .虚拟机fedora9.到fedora官网下载,地址 http://fedoraproject.org/ 版本推荐使用fedora9,在vm内安装,并且不安装vmware ...
随机推荐
- Python中比较运算符连用的语法规则
在Python中,比较运用符<.>.<=.>=.== .!=可以连用,但语法规则和其它编程语言不一样 以 == 为例,具体语法规则是: a == b == c == d 等价于 ...
- CSS 即将支持嵌套,SASS/LESS 等预处理器已无用武之地?
最近,有一则非常振奋人心的消息,CSS 即将原生支持嵌套 -- Agenda+ to publish FPWD of Nesting,表示 CSS 嵌套规范即将进入规范的 FWPD 阶段. 目前对应的 ...
- JS的FileSaver在Chrome上保存失败
在使用JavaSript的FileSaver保存文件时,IE11上好的,chrome上反没响应,不能保存文件.寻找了半天,最好发现是因为在FileSaver之外还有一个自定义的全局URL变量,把这个U ...
- 阿里饿死了么Android面试凉经,两轮面完被虐哭了,怒清购物车。。。卸载饿死了么
大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他漫不经心地复习了几个月,就去参加了饿了么面试,第二面结束后,嗯,挂了 ...
- 【NLP学习其五】模型保存与载入的注意事项(记问题No module named 'model')
这是一次由于路径问题(找不到模型)引出模型保存问题的记录 最近,我试着把使用GPU训练完成的模型部署至预发布环境时出现了一个错误,以下是log节选 unpickler.load() ModuleNot ...
- 跟我一起写 Makefile(七)
使用变量 ---- 在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使用的地方.其与C/C++所不同的是 ...
- Java服务突然失败:A fatal error has been detected by the Java Runtime Environment的总结
服务启动以后过段时间自动失败:A fatal error has been detected by the Java Runtime Environment 控制台中的错误信息 A fatal err ...
- Linux文件系统只读 解决方案:
Linux系统Read-only file system,文件系统只读排查解决方案:文件系统只读机制:当文件系统自身的校验机制发现文件系统存在问题时,为避免文件系统受到进一步的损坏,系统会把文件系统设 ...
- SQL注入:sqli-labs:5~6 double injection(Query)
第五题: http://127.0.0.1/sqli/Less-5/?id=1 显示:You are in--.后面发现,不管是1,2,3,4都死显示Your are in --,不打紧,继续看看 h ...
- ffmpeg第6篇:滤镜语法
前言 哈哈,回来继续填坑了,前段时间较忙没时间写,现在继续~ 简介 滤镜是ffmpeg的一个很强大的功能,它支持许多有用的视频处理功能,常见的滤镜如:缩放.旋转.水印.裁剪等 一个比较经典的滤镜使用方 ...