交叉编译环境搭建

合集下载

ARM学习——建立交叉编译环境

ARM学习——建立交叉编译环境

ARM学习——建立交叉编译环境
ARM学习——建⽴交叉编译环境
在linux平台下,要为开发版编译内核,需要使⽴交叉编译⽴具链。

tiny6410使⽴的是arm-linux-gcc-4.5.1。

它默认采⽴armv6指令集,⽴持硬浮点运算。

以下是安装步骤:
1)将⽴件arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz复制到redhat 的⽴录/tmp⽴录下。

然后cd到该⽴录,执⽴解压命令:
注意:C后⽴是⽴个空格,并且C是⽴写的,它是英⽴单词“Change”的第⽴个字母,在这⽴是改变⽴录的意思。

执⽴该命令后,arm-linux-gcc被安装到/opt/FriendlyARM/toolschain/4.5.1 ⽴录。

2) 把编译器路径加⽴到系统环境变量,运⽴命令
编辑/root/.bashrc ⽴件,在最后⽴⽴加⽴export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin。

如果在ubuntu10⽴⽴,就修改/etc/environment⽴件。

在PATH字符串⽴⽴添加上“:/opt/FriendlyARM/toolschain/4.5.1/bin”。

重启虚拟机。

如上图。

然后保存退出。

重新登录系统(不必重启机器,注销(logout)⽴下就可以了)。

重新登录后,在命令⽴输⽴arm-linux-gcc-v,出现以下信息就说明交叉编译环境安装成功了。

第2章 搭建Linux交叉编译开发环境

第2章  搭建Linux交叉编译开发环境
g++——gnu的 c++ 编译器。 protoize——与unprotoize相反,将K&R C的源
码转化为ANSI C的形式,函数原型中加入参数 类型。
c++——gnu的c++编译器。
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
d, 建立编译目录: build-binutils——编译binutils的目录 build-boot-gcc——编译gcc 启动部分

build-glibc——编译glibc的目录 build-gcc——编译gcc 全部的目录 gcc-patch——放gcc的补丁的目录
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链
2.2.1 编译工具链
以下是一个基于RedHat linux的交叉编译环境的建立过程。 整个编译过程包括: 1. 下载源文件、补丁和建立编译的目录; 2. 建立内核头文件; 3. 建立二进制工具(binutils); 4. 建立初始编译器(bootstrap gcc); 5. 建立c库(glibc); 6. 建立全套编译器(full gcc)。
2C0o2p0y/8ri/g4ht © 2003-2007 SinoSys. All Rights Reserved
双实科技
2.2 建立交叉编译开发工具链

预备实验:交叉编译环境建立

预备实验:交叉编译环境建立

预备实验:交叉编译环境建立知识点储备:1、熟练掌握shell指令:sudo 、cd 、ls、tar、pwd、vim、source、export (阅读“Linux 系统命令及其使用详解”,完成附录一“Linux指令的随堂测试”)2、掌握添加环境变量的手段(参见附录二“关于在ubuntu下设置环境变量的三种方法”)3、掌握编写Makefile的方法(阅读“跟我一起写Makefile”,完成附录三的“Makefile的随堂测试”)4、关于64位ububuntu12.4系统安装32位依赖库的问题解答见附录四。

一、交叉编译的安装步骤:(cd 切换工作目录;pwd:查看当前目录路径;exit:退出root)1、将压缩包arm-linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是 /home/song/software,如下图,记住这个路径,等会还会用到。

(cd song后cd software)2、使用tar命令:tar -zxvf arm-linux-gcc-4.4.3.tar.gz将software文件夹下的arm-linux-gcc-4.4.3.tar.gz解压缩安装到当前目录下如下图通过下图可以看到解压成功了,并且解压后的文件存放在了/home/song/software/opt/FriendlyARM/toolschain/4.4.3文件夹下,如下图所示,这个存放路径可得记住,如下图(jack123@ubuntu:~/song/software/opt$ cd FriendlyARMjack123@ubuntu:~/song/software/opt/FriendlyARM$ cd toolschainjack123@ubuntu:~/song/software/opt/FriendlyARM/toolschain$ cd 4.4.3jack123@ubuntu:~/song/software/opt/FriendlyARM/toolschain/4.4.3$ lsjack123@ubuntu:~/song/software/opt/FriendlyARM/toolschain/4.4.3$ pwd/home/jack123/software/opt/FriendlyARM/toolschain/4.4.3)2:/home/jack123/software/opt/FriendlyARM/toolschain/4.4.3/bin3、接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。

qt 源码交叉编译

qt 源码交叉编译

qt 源码交叉编译Qt是一款一流的跨平台应用程序开发框架。

由于 Qt 提供了非常具有竞争力的开发效率,易于开发者上手的API 设计,“Write Once, Run Anywhere” 的特性以及一系列高效、易于维护的组件等等优点,因而已经被广泛应用在各类软件开发类型中。

在使用 Qt 进行嵌入式开发时,我们经常需要将 Qt 源码交叉编译到目标平台。

Qt 源码交叉编译的过程远不是一件易事,需要开发者对开发环境有深入的了解。

在本文中,我们将为大家讲解如何对 Qt 源码进行交叉编译。

一、搭建交叉编译环境在进行 Qt 源码交叉编译前,我们需要先搭建好交叉编译的环境。

根据目标平台的不同,搭建环境的方法也会有所不同。

如果您需要将 Qt 编译到 ARM 平台上,可以尝试使用工具链进行交叉编译;如果您需要将 Qt 编译到MIPS 平台上,应该使用 Qemu 虚拟机进行交叉编译。

无论你选择哪种方式,您都需要确保您的开发环境中所有必要的库都已经安装到了系统中。

例如,如果您需要对 Qt 进行静态编译,您需要在开发环境上安装 libxcb-static、libxkbcommon-static 和 libinput-static 等库。

在搭建好 environment 后,我们需要对自己所使用的工具链进行相应的配置。

首先,您需要设置您的编译器、链接器、构建工具等等配置信息,并且需要确保这些配置信息均已经添加到 PATH 路径中。

接着,您可以通过设置以下环境变量来使得交叉编译环境正常运行:export TARGETMACH=arm exportQMAKE_CXX=/path/to/YOUR_ARCH-g++ export QMAKE_LINK=/path/to/YOUR_ARCH-g++ exportQT_ARCH=arm exportCROSS_COMPILE=/path/to/YOUR_ARCH-以上的环境变量是指定了目标平台架构($TARGETMACH)、编译器及链接器($QMAKE_CXX 和$QMAKE_LINK)、构建的目标架构($QT_ARCH),以及编译时需要的交叉编译工具链($CROSS_COMPILE)。

搭建虚拟机交叉编译环境

搭建虚拟机交叉编译环境
搭建虚拟机交叉编译 环境
编译环境的搭建
虚拟机安装,操作系统
1.解压操作系统镜像 fedora9 2.安装虚拟机 的 3.点击打开已存在的虚拟机按钮,找到解压后 操作系统镜像 4.点击绿色按钮恢复操作统 5.copy 我已复制
6.yes 是
虚拟机中操作系统和pc机的共享
1.windos上新建一个文件夹 D:/tarena 2.虚拟机->设置->选项->共享文件夹->总是启用 3.添加 跟随向导选择windos上的文件夹tarena 确定 4.确定 5.cd /mnt/hgfs 6.ls 看到tarena表示成功(部分电脑看不到也算正常)
5.vim ~/.bashrc a 添加一行: export PATH=$PATH:第4步复制的内容 esc :wq 6.重启终端然后输入 arm-linux- 按两下tab键 如果显示一些命令,表示安装成功
交叉编译环境
1.把arm-linux-gcc-4.5.1.tgz文件复制到虚拟机中root的主文 件夹里 2.解压 打开终端 cd tar -zxvf arm-linux-gcc-4.5.1.tgz(输入ar后按tab键) 3.一路cd直到进入bin目录 4.pwd然后复制显示的内容 /root/opt/FriendlyARM/toolschain/4.5.1/bin

交叉编译环境的建立

交叉编译环境的建立

随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来越多的进入人们的生活之中,应用范围越来越广。

在裁减和定制Linux,运用于你的嵌入式系统之前,由于一般嵌入式开发系统存储大小有限,通常你都要在你的强大的pc机上建立一个用于目标机的交叉编译环境。

这是一个由编译器、连接器和解释器组成的综合开发环境。

交叉编译工具主要由binutils、gcc 和glibc 几个部分组成。

有时出于减小libc 库大小的考虑,你也可以用别的c 库来代替glibc,例如uClibc、dietlibc 和newlib。

建立一个交叉编译工具链是一个相当复杂的过程,如果你不想自己经历复杂的编译过程,网上有一些编译好的可用的交叉编译工具链可以下载。

下面我们将以建立针对arm的交叉编译开发环境为例来解说整个过程,其他的体系结构与这个相类似,只要作一些对应的改动。

我的开发环境是,宿主机i386-redhat-7.2,目标机arm。

这个过程如下1. 下载源文件、补丁和建立编译的目录2. 建立内核头文件3. 建立二进制工具(binutils)4. 建立初始编译器(bootstrap gcc)5. 建立c库(glibc)6. 建立全套编译器(full gcc)下载源文件、补丁和建立编译的目录1. 选定软件版本号选择软件版本号时,先看看glibc源代码中的INSTALL文件。

那里列举了该版本的glibc编译时所需的binutils 和gcc的版本号。

例如在glibc-2.2.3/INSTALL 文件中推荐gcc 用2.95以上,binutils 用2.10.1 以上版本。

我选的各个软件的版本是:linux-2.4.21+rmk2binutils-2.10.1gcc-2.95.3glibc-2.2.3glibc-linuxthreads-2.2.3如果你选的glibc的版本号低于2.2,你还要下载一个叫glibc-crypt 的文件,例如glibc-crypt-2.1.tar.gz。

嵌入式操作系统实验一建立交叉编译环境

嵌入式操作系统实验一建立交叉编译环境

嵌入式操作系统实验报告队友:张圣苗亚实验内容1、准备工作工作:安装virtualbox虚拟机工具,并安装ubuntu10.10系统、增强型工具,实现共享文件夹的自动挂载。

2、利用crosstool提供的脚本安装和相关资源编译面向的ARM的GCC工具。

详细内容1:安装虚拟机软件和虚拟机时要完成的主要步骤有:安装virtualbox,建立一台虚拟机,分配内存和硬盘,指定共享文件夹(主机和虚拟机可共同操作),指定操作系统镜像文件路径(相当于光盘,第一次启动时安装),安装虚拟操作系统,安装增强工具包,实现共享文件夹的自动挂载。

有几点需要注意:1、虚拟硬盘尽量分配大一些,之后再扩就比较麻烦。

2、共享文件夹不要有中文路径,不然挂载后看不到中文名称文件。

3、安装操作系统时,不能断网,需要下载各种资源,不然会异常。

详细内容2:安装gcc-4.1替换操作系统中的gcc-4.4.5,用它编译交叉编译器gcc-3.4.5和库文件glibc-2.3.2、gdb-6.5。

为了完成这样的目标,我们需要安装与脚本相关的工具,需要修改crosstool中的配置文件arm.dat以指定编译的目标位arm-linux。

需要修改crosstool中的脚本文件,指定编译的源文件和目的文件夹(后来建立),指定配置文件为gcc-3.4.5-glibc-2.3.2.dat,在该配置文件中,指定了交叉编译器和调试器、C库的版本。

最后运行脚本,实现了对GCC工具包的安装,包括gcc预处理器、汇编器、编译器、链接器、调试器、反汇编工具等等。

整个实验中我们需要的资源是crosstool-0.43.tar、gdb-6.5.tar、linux-2.6.8.tar,将放置在共享文件夹的crosstool工具拷贝到主文件夹下并解压,将gbd和linux文件拷贝到crosstool文件夹,拷贝linux-2.6.8.tar是因为编译时需要内核文件。

实验步骤实验准备:在实验准备中,在安装完增强工具包(安装vmware tools实现与XP文件共享)并重启之后,需要实现对共享文件夹的自动挂载,只需要修改etc目录中的配置文件rc.local,rc.local是很多linux系统管理员的偏爱,因为凡是需要随系统自动启动的服务、程序等,都可以放在里面。

搭建ppc交叉编译环境

搭建ppc交叉编译环境
/home/yaoxt/ppc_cross,ppc_85xx为交叉编译的目标处理器(根据目标即处理器类型
而定)
注意:
安装时不要使用root权限,很有可能会导致安装失败
按安装时可能会因缺少库依赖而安装失败,安装对应的库文件重新安装即可
3
3.1
命令:vi ~/.bashrc
3.2
"PATH=$PATH:/home/yaoxt/ppc_cross/bin:/home/yaoxt/ppc_cross/usr/bin"
3.4
"CROSS_COMPILE=ppc_85xx-"
注意:ppc_85xx-最后面有一个横杠,该横杠必须添加。
以上环境变量配置完成后使用export命令设置以上环境变量,最终设置结果如下图所示:
设置完成后,将设置的环境变量置生效,主要的方式有:
(1)执行:source ~/.bashrc
(2)重启中端(推荐)
4
编一个简单的main.c程序,执行:ppc-linux-gcc -Wall -g -o main main.c
若编译成功,则说明ppc交叉编译环境搭建成功。
5
5.1
Linux源码下载地址:/,在该网站中选择合适的版本下载。本文中以下载linux-2.6.36.2版本为例进行说明。
1.2
为方便公司内部下载使用,已将ppc-2008-04-01.iso镜像文件下载后上传至本地ftp,ftp地址为:xxxxx
2
2.1
命令:mkdir /mnt/cdrom
说明:该命令的目的是创建一个镜像文件的挂载点,挂载点/mnt/cdrom的目录名称和路径可自定义
2.2
命令:sudo mount–o loop ppc-2008-04-01.iso /mnt/cdrom
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

交叉编译环境搭建 一、Emdebian介绍 Emdebian vision In the Emdebian vision someone wishing to build a GNU / Linux based device would:

1. Port the linux kernel to their hardware (including writing any specific device drivers).

2. Select the prebuilt emdebian packages needed to support their application.

3. Package their application as Debian package(s) using Debian and Emdebian tools. 4. Build a root filesystem using Emdebian tools from the steps above.

Emdebian is involved in steps 2,3,4 above (there are far too many embedded device hardware variations to make prebuilt kernels practical).

Thus EmDebian is a binary distribution for embedded devices (whereas most of the other contenders in this space are source distributions [of course being Debian and open source the source code is still available if required].

What emdebian does In short, what EmDebian does is wrap around the regular debian package building tools to provide a more fine grained control over package selection, size, dependencies and content to enable creation of very small and efficient debian packages for use on naturally resource limited embedded targets.

二、搭建GCC编译开发环境 安装G++/GCC编译环境 sudo apt-get install gcc g++ make gdb 可以使用man命令查看GCC和G++的帮助信息。 还可以通过 gcc –v/–version命令查看其版本信息,通过这些信息我们能够了解到编译器的一些情况。

安装相应的开发帮助文件 使用以下命令安装开发所需的帮助文档,这些文档包括了linux API函数的说明和例子等等。 sudo apt-get install manpages-dev manpages-posix-dev libstdc++6-4.4-doc 安装时,系统会将关联的软件包一并安装。

安装结束后,即可测试一下相关的帮助文档。 三、搭建GCC交叉编译开发环境 我们采用emdebian提供的已配置好的交叉编译器,这样做可降低初学者的入门难度。当然,传统的嵌入式开发还是建议自己编译配置交叉编译器,以此得到一个更适合自己项目的开发环境。比如:得到一个支持uclibc库的编译器;得到一个支持定点运算的编译器等等。关于如何定制一套属于自己的交叉编译器,这个问题我们将留到以后的课程中详细讲解。在此,我们可以先认为emdebian提供的交叉编译器就是我们需要的。

添加emdebian网站提供的软件包源 使用nano命令编辑系统的/etc/apt/sources.list软件源列表文件,在其中添加emdebian网站提供的软件包源地址。 sudo nano /etc/apt/sources.list

除了testing版本的软件包源外,我们还可使用stable版本的。 deb http://www.emdebian.org/debian/ stable main deb-src http://www.emdebian.org/debian/ stable main debian的程序版本管理机制将软件分为了unstable, testing, stable三个版本,其中stable为稳定的版本,但版本也较unstable和testing低一些。

更新软件源信息安装源的数字证书 使用apt-get update命令更新软件源的包描述信息,通过这些信息,我们可以知道一个软件源提供哪些版本的安装软件及源代码包。 sudo apt-get update 通过安装emdebian-archive-keyring就可以安装emdebian网站提供的软件源的数字证书,数字证书是一种安全认证机制,有了数字证书就可以避免安装到非法网站提供的软件源。 sudo apt-get install emdebian-archive-keyring

安装G++/GCC交叉编译开发环境 在emdebian软件源中,将一个类型的交叉编译开发环境分为了13个软件包。这些软件包括了:binutils, cpp, g++, gcc, gdb, libc库, libstdc++库, linux头文件等等。可以通过apt-get install命令进行安装,以下我们已arm-linux-gnu为例,安装这一套交叉编译器的软件包: 支持OABI接口的编译器安装包: binutils-arm-linux-gnu (版本 2.18.1~cvs20080103-7) cpp-4.3-arm-linux-gnu (版本 4.3.2-1.1) g++-4.3-arm-linux-gnu (版本 4.3.2-1.1) gcc-4.3-arm-linux-gnu (版本 4.3.2-1.1) gcc-4.3-arm-linux-gnu-base (版本 4.3.2-1.1) libc6-arm-cross (版本 2.7-18) libc6-dev-arm-cross (版本 2.7-18) libgcc1-arm-cross (版本 1:4.3.2-1.1) libstdc++6-4.3-dev-arm-cross (版本 4.3.2-1.1) libstdc++6-4.3-pic-arm-cross (版本 4.3.2-1.1) libstdc++6-arm-cross (版本 4.3.2-1.1) linux-kernel-headers-arm-cross (版本 2.6.18-6) gdb-arm-linux-gnu (版本 6.8-3)

支持EABI接口的编译器安装包: binutils-arm-linux-gnueabi (2.18.1~cvs20080103-7) cpp-4.3-arm-linux-gnueabi (4.3.2-1.1) g++-4.3-arm-linux-gnueabi (4.3.2-1.1) gcc-4.3-arm-linux-gnueabi (4.3.2-1.1) gcc-4.3-arm-linux-gnueabi-base (4.3.2-1.1) gdb-arm-linux-gnueabi (6.8-3) libc6-armel-cross (2.7-18) libc6-dev-armel-cross (2.7-18) libgcc1-armel-cross (1:4.3.2-1.1) libstdc++6-4.3-dev-armel-cross (4.3.2-1.1) libstdc++6-armel-cross (4.3.2-1.1) gcc-4.3-base-armel-cross (4.3.2-1.1) linux-libc-dev-armel-cross (2.6.26-17)

在安装过程中,一定要注意各软件包之间的版本依赖,这些依赖实际上是编译器配置的一部分,在此emdebian已为用户搭配好的了。其中gdb-arm-linux-gnu包会与之前的gdb包有冲突。解决方法如下: 找到从emdebian下载的软件包gdb-arm-linux-gnu,并将其拷贝到一个工作目录下。 cp /var/cache/apt/archives/gdb-arm-linux-gnu_6.8-3_i386.deb . 使用dpkg -x命令解压出其中的数据内容。 dpkg -x gdb-arm-linux-gnu_6.8-3_i386.deb gdb-arm-linux-gnu_6.8-3_i386 使用dpkg -e命令解压出其中的控制信息,并保存在XXX/DEBIAN目录下。 dpkg -e gdb-arm-linux-gnu_6.8-3_i386.deb gdb-arm-linux-gnu_6.8-3_i386/DEBIAN 删除文件XXX/usr/share/man/man1/gdb.1.gz,正是这个文件与gdb软件包冲突。 rm -f gdb-arm-linux-gnu_6.8-3_i386/usr/share/man/man1/gdb.1.gz 使用dpkg-deb -b命令重新打包gdb-arm-linux-gnu,生成新的软件包。 dpkg-deb -b gdb-arm-linux-gnu_6.8-3_i386 使用 dpkg -i命令手动安装gdb-arm-linux-gnu软件包。 sudo dpkg -i gdb-arm-linux-gnu_6.8-3_i386.deb

到此,交叉编译开发环境安装完毕。 四、搭建集成交叉编译开发环境 CodeBlocks集成开发环境介绍 安装提供CodeBlocks软件包的软件源 添加CodeBlocks的软件源到/etc/apt/sources.list,此软件由网站apt.jenslody.de提供。 deb http://apt.jenslody.de/ any main deb-src http://apt.jenslody.de/ any main 添加CodeBlocks依赖的库wxwidgets的软件源到/etc/apt/sources.list,此库有网站apt.wxwidgets.org提供。 deb http://apt.wxwidgets.org/ lenny-wx main deb-src http://apt.wxwidgets.org/ lenny-wx main

相关文档
最新文档