编译器

来源:互联网 发布:昆明橙子网络 编辑:程序博客网 时间:2024/05/16 00:27

contents

1.0 编译器之作用

2.0 编译器工作流程

3.0 常用的编译器

4.0 gcc -g

5.0  Readelf指令

1. 编译器之作用:把高级语言翻译成机器语言(即低级语言)。

2. 编译器工作流程:源码--》预处理器--》编译器--》目标代码--》链接器--》可执行程序(executables).

3. 常用的编译器

1.0 vs是目前做得最好的IDE(集成开发环境)之一,对于初学者来说很容易上手。随着版本的更新,功能逐渐强大起来。

2.0 C++buider具有一个专业C++开发环境所能提供的全部功能:快速、高效、灵活的编译器优化,逐步连接,CP透视,命令行工具等。它实现了可视化的编程环境和功能强大的编程语言(C++)的完美结合。

3.0 Turbo C:使用了一系列下拉式菜单,将文本编辑、程序编译、连接以及程序运行一体化, 大大方便了程序的开发。

4.0 Dev-C++: 是一个Windows环境下C/C++的集成开发环境(IDE),缺点是Debug功能弱。

5.0  G++:linux里的C++编译器。

                     

6.0 Visual C++ 6.0之前的版本对C++的兼容性并不高,7.1之后的还是可以的。

4. gcc -g-g 选项会使能额外的、只有 GDB 能用的调试信息;这种额外信息能够令 GDB 更好的进行调试。产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。

5. Readelf指令Readelf命令用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些  信息。elf格式的文件也包括了含有elf文件的目录。elf文件:executables&linkable formatLinux下面,目标文件、共享对象文件、可执行文件都是使用ELF文件格式来存储的。

一个ELF文件中重要的段包括:

.text 段:存储 只读程序

.data 段:存储 已经初始化的全局变量和静态变量

.bss 段:存储 未初始化的全局变量和静态变量,因为这些变量的值为0,所以这个段在文件当中不占据空间

.rodata 段:存储 只读数据,比如字符串常量


-

--all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I. 


-h 

--file-header 显示elf文件开始的文件头信息. 


-l 

--program-headers  

--segments 显示程序头(段头)信息(如果有的话)。 


-S 

--section-headers  

--sections 显示节头信息(如果有的话)。 


-g 

--section-groups 显示节组信息(如果有的话)。 


-t 

--section-details 显示节的详细信息(-S的)。 


-s 

--syms        

--symbols 显示符号表段中的项(如果有的话)。 


-e 

--headers 显示全部头信息,等价于: -h -l -S 


-n 

--notes 显示note段(内核注释)的信息。 


-r 

--relocs 显示可重定位段的信息。 


-u 

--unwind 显示unwind段信息。当前只支持IA64 ELF的unwind段信息。 


-d 

--dynamic 显示动态段的信息。 


-V 

--version-info 显示版本段的信息。 


-A 

--arch-specific 显示CPU构架信息。 


-D 

--use-dynamic 使用动态段中的符号表显示符号,而不是使用符号段。 


-x <number or name> 

--hex-dump=<number or name> 以16进制方式显示指定段内内容。number指定段表中段的索引,或字符串指定文件          中的段名。 


-w[liaprmfFsoR] or 

--debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges] 

显示调试段中指定的内容。 


-I 

--histogram 显示符号的时候,显示bucket list长度的柱状图。 


-v 

--version 显示readelf的版本信息。 


-H 

--help 显示readelf所支持的命令行选项。 


-W 

--wide 宽行输出



原创粉丝点击