第3章 嵌入式Linux的开发环境及工具软件.ppt
上传人:sy****28 上传时间:2024-09-15 格式:PPT 页数:81 大小:356KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

第3章 嵌入式Linux的开发环境及工具软件.ppt

第3章嵌入式Linux的开发环境及工具软件.ppt

预览

免费试读已结束,剩余 71 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第3章嵌入式Linux的开发环境及工具软件3.1嵌入式Linux的开发环境3.1.2嵌入式Linux开发的一般过程3.2Linux开发工具的使用3.2.1Linux开发工具GNUgcc的使用使用gcc编译程序时,编译过程可以细分为4个阶段:(1)预处理(Pre-Processing)(2)编译(Compiling)(3)汇编(Assembling)(4)链接(Linking)2.GCC常用模式及选项gcc最基本的用法是:gcc[options]file...其中option是以“-”开始的各种选项,file是相关的文件名。在使用gcc的时,必须给出必要的选项和文件名。gcc的整个编译过程分别是:预处理、编译,汇编和链接。例如,$gcc-ohellohello.cgcc编译器就会生成一个hello的可执行文件。在hello.c的当前目录下执行./hello。gcc编译器生成的目标文件默认格式为elf(executivelinkedfile)格式,是Linux系统所采用的可执行链接文件的通用文件格式。elf格式由若干个段(section)组成,由标准c源代码生成的目标文件中包含以下段:●.text(正文段)包含程序的指令代码。●.data(数据段)包含固定的数据,如常量,字符串等。●.bss(未初始化数据段)包含未初始化的变量和数组等。GCC常用两种模式:编译模式和编译连接模式。例:假设全部的源代码都在一个文件test.c中。$gcc-otest此命令是把源文件test.c直接编译成可执行程序test。$gcc-ctest.c此命令是把源文件test.c编译成不可执行目标文件test.o。默认情况下,生成的目标文件名为test.o,但也可以为输出文件指定名称,如下所示:$gcc-ctest.c–omytest.o此命令是把源文件test.c编译成不可执行目标文件mytest.o。下面的命令将同时编译3个源文件,即first.c、second.c和third.c,然后将它们连接成一个可执行程序test。命令如下:$gcc-otestfirst.csecond.cthird.c其他常用选项的使用$gcctest.c–I../inc-otest此命令告诉GCC包含文件存放在./inc目录下,在当前目录的上一级。如果在编译时需要的包含文件存放在多个目录下,可使用多个-I来指定各个目录。如:$gcctest.c–I../inc–I../../inc2-otest此命令指出了另一个包含子目录inc2,较之前目录它还要在再上两级才能找到。另外,还可在编译命令行中定义符号常量。可简单的在命令行中使用-D选项即可,如下例所示:$gcc–DTEST_CONFIGURATIONtest.c-otest上面的命令与在源文件中加入下列命令是等效的:#defineTEST_CONFIGURATION其他常用选项的使用$gcctest.c–I../inc-otest此命令告诉GCC包含文件存放在./inc目录下,在当前目录的上一级。若在编译时需要的包含文件存放在多个目录下,可使用多个-I来指定各个目录:$gcctest.c–I../inc–I../../inc2-otest上面命令告诉GCC包含文件存放在./inc目录下,在当前目录的上一级。若在编译时需的包含文件存放在多个目录下,可使用多个-I来指定各个目录:$gcctest.c–I../inc–I../../inc2-otest这里指出了另一个包含子目录inc2,较之前目录它还要在再上两级才能找到.另外,我们还可以在编译命令行中定义符号常量。为此,我们可以简单的在命令行中使用-D选项即可,如下例所示:$gcc-DTEST_CONFIGURATIONtest.c-otest上面的命令与在源文件中加入下列命令是等效的:#defineTEST_CONFIGURATIONgcc的版本可以使用如下gcc–v命令查看:例3.1hello.c#include<stdio.h>intmain(intargc,char**argv){printf("HelloLinux\n");}要编译这个程序,只要在命令行下执行如下命令:[david@DAVIDdavid]$gcchello.c-ohello[david@DAVIDdavid]$./helloHelloLinux3.警告功能当GCC在编译过程中检查出错误,则中止编译;但检测到警告时却能继续编译生成可执行程序。在众多的警告选项之中,最常用的是-Wall选项。该选项能发现程序中一系列的常见错误警告,举例如下:$gcc-Walltest.c-otest该选项相当于同时使用了下