交叉编译环境完全通

交叉编译环境完全通

ID:8815290

大小:36.50 KB

页数:8页

时间:2018-04-08

交叉编译环境完全通_第1页
交叉编译环境完全通_第2页
交叉编译环境完全通_第3页
交叉编译环境完全通_第4页
交叉编译环境完全通_第5页
资源描述:

《交叉编译环境完全通》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、交叉编译环境完全通当我们开发嵌入式Linux软件时,一般都要经过交叉编译这一步。如果是开发PC机上的软件,我们只要用Linux本身提供的强大的编译器(如gcc)直接编译就可以了。而一般的嵌入式设备所用的CPU和PC机上的CPU有着不同的架构,这样就要求我们在PC机上编译出适用于嵌入式设备CPU架构的软件,这就是我们所说的交叉编译。下面我们用一个例子来详细说明交叉编译是如何工作的。一、所用平台Redhat9.0二、建立交叉编译环境很显然,要交叉编译就得有一个特殊的“环境”作前提,这里的环境就是一个与PC机不同的一套库

2、函数和编译器。用这样的库函数和编译器编译出来的应用程序就可以在嵌入式设备上跑了。Sitsang板提供的交叉编译工具链为:gnupro-bin-glibc2.2.4.tgz,xscale-arm-linux-toolchain.tgz:cd/     //回根目录tarzxvfxscale-arm-linux-toolchain.tgz //解压,解压后文件在/usr/local/下面echo“exportPATH=/usr/local/arm-linux/bin:${PATH}”>>~/.bashrc //设置环境

3、变量source~/.bashrccd/usr   //进入/usr文件夹,为了把glibc库安装在该目录下tarzxvf/tmp/gnupro-bin-glibc2.2.4.tgz  //解压这样我们的交叉编译环境就建立好了,怎么样,是不是很简单。下面我们就来测试一个简单的例子。/*Hello.c*/#includemain(){char*hello=”hello!”;printf(“%s”,hello);}程序输好以后确认无误,保存。进入程序文件所在目录比如在/root/hello/下面:

4、cd/root/helloarm-linux-gcchello.c–ohello(-o可以理解为“目标为生成”)第一行改不用解释了吧,第二行中arm-linux-gcc是第一次出现,有人可能会问这个哪里来的,不妨打开刚才安装的交叉编译工具目录/usr/local/arm-linux/arm-linux/bin/可以发现里面有一个arm-linux-gcc文件,这个就是针对arm的CPU的gcc编译器了。以后用其它编译工具链式也可以通过这种方法看看其编译器是什么了。编译好了以后就可以下载到目标机进行测试了。当然也可以

5、先在PC机上测试正误。用gcchello.c–ohello就可以生成PC机上程序了,在运行./hello就可以发现终端显示hello!字样。三、提高篇前面我们编译了一个小例子,当然这个例子只有一个hello!显示,没有任何其他的人机交互,所以当然也就不过瘾了。开发嵌入式Linux的交互界面可以有许多开发环境。我们这里选用Qt/embedded作为界面开发平台。首先当然是编译Qt/embedded了。所用的软件包为:qt-embedded-2.3.2.tar.gz。不过我们的开发板带有一块触摸屏,为了让用Qr/emb

6、edded做出来的程序能够支持触摸屏,必须要把触摸屏的库进行同时编译,开发板提供的触摸屏库为tslib.tar,下面开始编译(设当前路径为/opt,两个软件包也放在这个路径下):1.TSLIBbzip2-dctslib.tar.bz2

7、tarxv //解压,生成的文件夹名为tslib,具体bzip2的用法可以用manbzip2来查看cdtslib          //进入该文件夹exportCC=arm-linux-gcc  //用CC这个符号代替arm-linux-gcc,有了这一句后,我们前面编译时用arm-

8、linux-gcc就可以用CC来代替了./autogen.sh--host=arm-linux//这一句表示将编译适合arm架构cpu的库,其实打开autogen.sh这个文件,我们将发现这是一个批处理的shell文件其中—host=arm-linux是./configure的参数。其中内容如下:#!/bin/sh#$Id:autogen.sh,v1.1.1.12001/12/2221:12:06rmkExp$libtoolize--force--copyaclocalautoheaderautomake--add

9、-missing--copyautoconf./configure$*具体每条的含义是:make  //当然是编译啦,具体说是对前面configure好以后的配置进行编译2.安装Qt/Embedded...tarxfzqt-embedded-2.3.2.tar.gz //解压,生成qt-2.3.2文件夹,具体tar的用法也可以用mantar来查看mvqt-2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。