Linux-QT 开发环境搭建以及编译镜像
搭建Linux-QT 开发环境,需要先搭建Android 的编译环境,然后在Android 编译环境的基础上,再搭建Linux-QT 编译环境。
第一:编译器。
第二:设置环境变量。环境变量设置后,编译的时候,系统才能找到编译器。
第三:库文件。搭建过程中会给通过执行简单的脚本命令来安装库文件,复杂的步骤变的简单有效。
第四:源码。
使用的是“搭建好的Ubuntu 镜像”,只需要改一下环境变量,系统里面的工具和库文件之前都已经安装完毕了。
1 uboot 的编译
Linux-QT 系统中Uboot 和Android4.0.3 的Uboot 源码是通用的,编译环境和编译方法也一样。
2 Linux 内核的编译
Linux-QT 系统中Linux 内核和Android4.0.3 中的Linux 内核源码是一样的,编译环境和编译方法也一样。仅仅是编译的时候使用的配置文件".config "不一样。解压出来内核源码文件夹”iTop4412_Kernel_3.0“。然后需要用QT 内核的配置文件“config_for_linux”将Android4.0.3 内核的配置文件".config" 覆盖,覆盖后就可以编译QT 的内核。具体操作如下:
在Ubuntu 命令行中,执行下面命令:
cp config_for_linux .config
make
执行编译完命令后,在文件夹“iTop4412_Kernel_3.0” --> “arch”-->“arm”-->“boot”下会生成的“zImage”文件,“zImage”文件就是可供下载的内核文件。用户如果想恢复为Android4.0.3 的Linux 内核,在内核源码文件夹中,使用文件“config_for_android”覆盖“.config”文件就可以了。具体操作如下:
在Ubuntu 命令行中,执行下面命令:
cp config_for_android .config
3 Linux-QT 编译的环境以及编译
3.1 编译器和基本库文件的安装
QT 文件系统的编译器和Android4.0.3 的编译器不一样,QT 的编译器包含在压缩包“arm-linux-4.4.1.tar.g”中,将压缩包拷贝到Ubuntu 系统下,接着将压缩包解压到Ubuntu 系统的文件夹“usr”-->“local”-->“arm”下,解压生成文件夹“4.4.1”。然后安装X11 的SDK 库,具体操作如下:
在Ubuntu 命令行中,执行下面命令:
apt-get install libx11-dev libxext-dev libxtst-dev
接着修改环境变量,修改环境变量,具体操作如下:
在Ubuntu 命令行中,执行下面命令:
cd
vim .bashrc
使用vim 编辑器打开环境变量文件“.bashrc”后,修改QT 编译器的路径,添加下面的内容到文件“.bashrc”的最后一行。export PATH=$PATH:/usr/local/arm/4.4.1/bin在环境变量文件中,还有编译Android4.0.3 使用的编译器的路径,这个路径用#注释掉就可以,如下图:

修改完成后保存退出“.bashrc”文件。更新一下环境变量,在Ubuntu 命令行中,执行下面命令:
source .bashrc
测试编译器是否正确安装,在Ubuntu 命令行中,执行下面命令:
arm-none-linux-gnueabi-gcc -v
可以看到系统显示arm-gcc 编译器的版本为“gcc version 4.4.1”。在前面搭建Android4.0.3 编译环境的时候,有一步操作“降低gcc 版本”,但是前面那个“gcc”是x86 的编译器(通过命令#gcc -v 可以查看其版本)。这里用到的“gcc”编译器是arm 编译器,因此它们是两个完全不同的编译器。
3.2 QT 源文件和补丁文件
在Ubuntu 环境中,“root”目录下新建文件夹“yizhi”,具体操作如下,在Ubuntu 命令行中,执行下面命令:
cd /root
mkdir yizhi
接着将压缩包“ARM-qtopia-free-src-2.2.0.tar.gz”拷贝到前面新建的“yizhi”文件夹中,解压压缩包后得到源码文件“qtopia-free-src-2.2.0.tar.gz”和文件“build”。拷贝压缩包“tslib.tar.gz”到Ubuntu 系统下,然后解压到Ubuntu 系统的“usr”-->“local”文件夹下,解压后生成的文件夹“tslib”。
3.3 库文件和编译QT
编译QT 文件还需要一些额外的6 个库文件,这6 个库文件全部在用户光盘“linux”-->“patch”文件夹下。这六个库文件分别是:libXext.so.6.4.0, libXmu.so.6.2.0,libSM.so.6.0.1, libICE.so.6.3.0, libXt.so.6.0.0, libuuid.so.1.3.0其中的5 个库文件,包括“libXext.so.6.4.0“、”libXmu.so.6.2.0“、”libSM.so.6.0.1“、”libICE.so.6.3.0“、”libXt.so.6.0.0”,全部拷贝到Ubuntu 系统的文件夹“usr”
-->“lib32”下。然后创建链接文件,具体操作如下,进入Ubuntu 系统的文件夹“usr”-->“lib32”下,然后在Ubuntu 命令行中,执行下面的命令:
ln -s libXext.so.6.4.0 libXext.so.6
创建链接文件libXext.so.6
ln -s libXext.so.6 libXext.so
创建链接文件libXext.so
ln -s libXmu.so.6.2.0 libXmu.so.6
创建链接文件libXmu.so.6
ln -s libXmu.so.6 libXmu.so
创建链接文件libXmu.so
ln -s libSM.so.6.0.1 libSM.so.6
创建链接文件libSM.so.6
ln -s libSM.so.6 libSM.so
创建链接文件libSM.so
ln -s libICE.so.6.3.0 libICE.so.6
创建链接文件libICE.so.6
ln -s libICE.so.6 libICE.so
创建链接文件libICE.so
ln -s libXt.so.6.0.0 libXt.so.6
创建链接文件libXt.so.6
ln -s libXt.so.6 libXt.so
创建链接文件libXt.so
拷贝剩下的文件“libuuid.so.1.3.0”到Ubuntu 系统的“lib32”文件夹下,然后在Ubuntu命令行中,执行下面的命令:
ln -s libuuid.so.1.3.0 libuuid.so.1
创建链接文件libuuid.so.1
ln -s libuuid.so.1 libuuid.so
创建链接文件libuuid.so
库文件全部处理完成后,接着就可以编译QT 源码了,具体操作如下,在Ubuntu 命令行中,执行下面的命令:
cd /root/yizhi
./build
编译QT 源文件是一个比较漫长的过程。编译完成后会在Ubuntu 系统文件夹“root”-->“yizhi”下生成文件夹“qtopia-free-2.2.0”,这个文件夹就是编译好的QT 文件。在编译好的Qt 文件夹下,我们需要接着处理一下字库文件。具体操作如下,在Ubuntu 命令行中,执行下面的命令:
cp -r /root/yizhi/qtopia-free-2.2.0/qt2/lib/fonts/helvetica*/root/yizhi/qtopia-free-2.2.0/qtopia/image/opt/Qtopia/lib/fonts/然后我们把文件夹"Qtopia"拷贝到Ubuntu 系统的opt 文件夹下,具体操作如下,在Ubuntu 命令行中,执行下面的命令:
cp -r /root/yizhi/qtopia-free-2.2.0/qtopia/image/opt/Qtopia /opt
3.4 第三方库文件
上面编译的时候用到了第三方库文件“3rdpart-lib-for-Qtopia2.2.0.tar.gz”。由于这个库文件直接包含在提供的编译器压缩包“arm-linux-4.4.1.tar.gz”中,在前面解压编译器压缩包的时候,库文件就已经直接解压到Ubuntu 系统中了,所以在编译QT 的时候,用户不用进行额外的处理就可以直接编译生成QT 文件系统。
3.5 生成system.img
生成可以下载的system.img 文件需要工具“mkimage”,这个工具在用户光盘“tools”文件夹下的压缩包“linux_tools.tgz”。拷贝压缩包到Ubuntu 系统的“/”目录下,注意是“/”,然后将压缩包解压。在Ubuntu 的用户目录"topeet"下面,新建一个“Linux+QT”文件夹。拷贝压缩包“root.tar.gz”到新建的“Linux+QT”文件夹下,然后解压,解压后会生成文件夹“root”。然后把前面编译生成的文件夹“Qtopia”拷贝到解压出来的“opt”文件夹中,具体操作如下,在Ubuntu 命令行中,执行下面的命令:
cp -r /root/yizhi/qtopia-free-2.2.0/qtopia/image/opt/Qtopia/home/topeet/Linux+QT/root/opt
红色的topeet 是用户文件夹,如果自己搭建环境,则需要替换成自己设置的用户名。
在执行上面的操作后,最后执行生成二进制文件的命令,在Ubuntu 命令行中,执行下面
命令:
cd /home/topeet/Linux+QT
make_ext4fs -s -l 314572800 -a root -L linux system.img root
执行这一步后,在“Linux+QT”文件夹中就生成了“system.img”文件。最后QT 系统还需要一个镜像文件“ramdisk-uboot.img”,这个镜像文件是通用的,可以直接用编译好的镜像。
到这一步,Linux-QT 需要的全部镜像就都已经制作完成。
Linux-QT 开发环境搭建以及编译镜像的更多相关文章
- IMX6开发板Qtopia2.2.0开发环境搭建以及编译镜像
搭建 Qtopia2.2.0 开发环境,需要先搭建 Android 的编译环境,然后在 Android 编译环境的基础上,再搭建 Qtopia2.2.0 编译环境.以下内容基于迅为-iMX6开发板.Q ...
- s3c6410 Linux 驱动开发环境搭建
s3c6410 Linux 驱动开发环境搭建 -- 既然你是做Linux开发的,你还用虚拟机? 非常多人都在win下做开发,于是SD_writer.exe之类的烧写工具"大行其道" ...
- qt学习教程1.qt开发环境搭建
qt学习教程1.qt开发环境搭建 首先下载qt 下载地址:http://download.qt.io/archive/qt/ 此教程使用的版本为5.1.1 下载好后,打开安装包,然后点下一步 选择一个 ...
- win10子系统linux.ubuntu开发环境搭建
移步新博客... win10子系统linux.ubuntu开发环境搭建
- Zynq7000开发系列-6(QT开发环境搭建:Ubuntu、Zynq)
操作系统:Ubuntu14.04.5 LTS 64bit Qt:Qt 5.4.2 (qt-opensource-linux-x64-5.4.2.run.qt-everywhere-opensource ...
- Qt开发环境搭建 - Windows + VS2010 + VS插件
Qt 开发环境搭建 - Windows+VS2010+VS插件 1.Qt在Windows平台下的三种开发环境 方案 编辑器 编译器 调试器 一 Qt Creator MinGW GDB 二 Qt Cr ...
- Linux下使用VsCode进行Qt开发环境搭建
最近在Linux上搞Qt, vim环境还用不太习惯, QtCreator之前使用时莫名其妙崩溃然后丢失代码之后就被我彻底放弃了, 于是研究了一下用VsCode进行Qt开发. 首先是系统环境和下载安装包 ...
- Unix/Linux环境C编程入门教程(10) SUSE Linux EnterpriseCCPP开发环境搭建
安装SUSE企业版以及搭建C/C++开发环境 1. SUSELinux Enterprise是一款服务器操作系统,异常稳定. 2.设置虚拟机类型. 3.选择稍后安装操作系统. 4.选择SUS ...
- Linux PC开发环境搭建建议
搭建Linux PC开发环境 很早之前整理的在Linux(ubuntu)系统下搭建 PC开发环境的工具的推荐和简单说明,尽管现在有些已经不再使用,但还是要备份一下,作为以后的参考: package: ...
随机推荐
- Javascript 笔记与总结(1-3)arguments
arguments 是函数运行时的实参列表(对象),每个函数都有自己的 arguments,但不往外层函数寻找 arguments 的相关属性,即不行成链(只有 OA 形成作用域链). 例1 < ...
- Windows下的Objective-C集成开发环境(IDE)
Windows下的Objective-C集成开发环境(IDE) 分类: Objective-C2012-04-20 21:54 26631人阅读 评论(42) 收藏 举报 windowside编译器c ...
- 解决ORA-00054资源正忙的问题
有时候在drop表或者其他对象的时候,会遇到ORA-00054:资源正忙,要求指定NOWAIT(中文字符集)或者ORA-00054: resource busy and acquire with NO ...
- PHP5.4安装xhprof扩展[不要去pecl下载]
HP5.3或之前版本可以去pecl(http://pecl.php.net)下载xhprof扩展安装. 但pecl上的版本不支持PHP5.4 可以到github上的xhprof库中下载:https:/ ...
- 启用“关闭自动根证书更新”,解决Windows系统各种卡顿的问题(Visual studio 卡、远程桌面mstsc卡、SVN卡)
最近,发现在Win7下面一系列操作都会出现卡顿的情况: 1. Visual studio 启动调试和关闭调试时,都会卡上半分钟左右 2. 使用远程桌面mstsc.exe,点击连接时,也会卡上半分钟 ...
- mysql创建外键出错(注意数据库表字段排序)
1. 两个字段的类型或者大小不严格匹配.例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint.另外,你还必须确定两个字段是否一个为 sig ...
- USBDongle及Btool使用说明
BLE 模块可使用开发套件中的 USB Dongle 模拟手机APP配合Btool.exe 进行蓝牙通讯测试. >连接 BLE 模块 USB Dongle 和模块的连接是通讯的基础,扫描连接的操 ...
- zepto源码--插入节点--学习笔记
与生成width和height使用的方法类似,通过`after`, `prepend`, `before`, `append`,这四者之间的共性,生成对应的函数.并根据这四个函数,生成 `insert ...
- 设计模式:策略模式(Strategy)
定 义:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化, 不会影响到使用算法的客户. 示例:商场收银系统,实现正常收费.满300返100.打8折.......等不同收费 ...
- [LeetCode]题解(python):074-Search a 2D Matrix
题目来源 https://leetcode.com/problems/search-a-2d-matrix/ Write an efficient algorithm that searches fo ...