核心内容摘要
办公效率提升利器:深求·墨鉴OCR工具实战体验
目录编译与链接GCC命令格式gcc主要执行步骤编译汇编(as)链接(ld)GCC涉及的文件类型ELFELF简介ELF文件格式ELF文件处理相关工具编译与链接GCCGCCGNU Compiler CollectionGCC, the GNU Compiler Collection - GNU Project由 GNU开发的遵循 GPL 许可证发行的编译器套件支持 C、C、Objective-C、Fortran、Ada 和 Go 语 言等多种语言前端已被移植到多种计算机体系架构 上如 x
ARM、RISC-V 等GCC 的初衷是为 GNU 操作系统专门编写一款编译器 现已被大多数 “Unix-like”操作系统如 Linux、BSD、MacOS 等采纳为标准的编译器命令格式gcc [options] [filenames]gcc主要执行步骤编译cc1这里针对 C 语言不同的语言有自 己的编译器编译器完成 “预处理” 和 “编 译”“预处理” 指处理源文件中以 “#” 开 头的预处理指令譬如 #include、#define 等 “编译” 则针对预处理的结果进行一系列的词法分析、语法分析、语义分析优化后生成汇 编指令存放在 .o 为后缀的目标文件中汇编(as)汇编器将汇编语言代码转换为机 器CPU可以执行的指令链接(ld)链接器将汇编器生成的目标文件 和一些标准库譬如 libc文件组合形成最 终可执行的应用程序GCC涉及的文件类型.cC 源文件.cc/.cxx/.cppC 源文件.i经过预处理的 C 源文件.s/.S汇编语言源文件.h头header文件.o目标object文件.a/.so编译后的静态库archive文件和共享库 shared object文件a.out可执行文件ELFELF简介ELFExecutable Linkable Format是一种 Unix-like 系统上的二进制文件格式标准ELF 标准中定义的采用 ELF 格式的文件分为 4 类:ELF文件格式ELF文件处理相关工具Binutilshttps://www.gnu.org/software/binutils/ar归档文件将多个文件打包成一个大文件as被 gcc 调用输入汇编文件输出目标文件供链接器ld连接ldGNU 链接器。
被 gcc 调用它把目标文件和各种 库文件结合在一起重定位数据并链接符号引用objcopy执行文件格式转换objdump显示 ELF 文件的信息readelf显示更多 ELF 格式文件的信息包括 DWARF 调试信息