原创 【连载】Sunplus DVD软件Makefile详解(一)

2009-11-28 21:44 2384 5 5 分类: MCU/ 嵌入式

Sunplus DVD软件Makefile详解(一)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


          xluoly@hotmail.com


预备知识--GNU工具链


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />18f62a2c-2dfe-48a5-90a4-336802b48b05.JPG



Pre-processor
(cpp /
gcc -E)




Compiler


(cc1 /
gcc -S)




Assembler


(as /
gcc -c)




Linker


(ld)

<?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />


GNU工具链的组成


l     GCC——GNU Compiler Collection


l     Binutils——GNU binary utilities


l     Glibc——GNU C Library


GCC


l     功能:


2        高级语言.c.cpp;…)-> 汇编语言(.s)


l     组成:


2        cppgccg++…


2        cpp0cc1cc1plus …


2        libgcc.a…


Binutils


l     功能:


2        汇编语言(.s) > 目标文件(.o) > 可执行程序


2        查看二进制文件信息


l     组成:


2        asld


2        objdumpreadelfstriparnm …


Glibc


l     功能:一组可执行程序


2        提供语言和操作系统的标准库函数


l     组成:若干可执行程序 + 大量库


2        lddiconvlocale…


2        ISO CPOSIXUNIXGNU


GNU工具链的工作流程


f6a09ffc-8190-4de3-a2b1-1b8100365c98.JPG


扩展名的默认含义


l       需要预处理的源代码:.c.cc ……


l       不需预处理的源代码:.i.ii ……


l       需要预处理的汇编代码:.S


l       不需预处理的汇编代码:.s


l       目标文件:.o


l       静态库:.a


l       动态库:.so


常用工具的用法


l       gcc/g++ [options] file...


编译器


2        -Wall


打印警告信息


2        -g


添加调试信息到输出文件


2        -O  -O0  -O1  -O2  -O3  -Os


优化选项,若有多个则最后一个有效


2        -D  -U


定义和取消宏定义


2        -msoft-float


使用软件库(libgcc.a)模拟硬件浮点指令


2        -I


指定头文件搜索路径,若有多个则从前往后搜索


2        -L


指定库搜索路径,若有多个则从前往后搜索


2        -l


指定引用的库,从当前位置向后搜索


2        -E


输出预处理后的文件(.i.ii 等)


2        -S


输出编译生成的汇编文件(.s


2        -c


输出汇编生成的目标文件(.o


2        -o


指定输出文件名


l       as [option...] [asmfile...]


汇编器,可由gcc -c代替


l       ld [options] file...


连接器,可由gcc代替


asld通常都是由gcc调用,一般不直接使用。


l       objdump [option(s)] [file(s)]


反汇编各种格式的目标文件和可执行程序


2        -d


只反汇编代码段


2        -D


反汇编代码段和数据段


2        -S


混合输出源代码和汇编代码,编译时必须加-g选项


2        -s


显示指定段的完整内容


l       readelf [option(s)] elf-file(s)


显示ELF格式文件信息


2        -e


显示头信息,包括ELF file headersection headerprogram header


2        -s


显示符号表信息


2        -r


显示重定位信息


2        -a


显示所有信息


l       strip [option(s)] in-file(s)


删除输入文件的符号表和指定的section


2        -o


指定输出文件名


l       ar


管理归档文件(*.a


2        -d-m-q-r-t-x


分别用于删除、移动、添加、替换、显示、取出归档文件的内容


l       nm [option(s)] [file(s)]


显示文件的符号信息,可用于各种目标文件、可执行程序和归档文件(.a


 


 


『未完,待续...』

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条