⑴ gcc命令详解
GCC命令详解如下:
一、GCC简介 全称:GNU Compiler Collection 发起者:Richard Stallman 发起时间:1985年 性质:自由软件,以GPL和LGPL许可证发布 支持语言:起初只为C语言服务,现支持C、C++、ObjectiveC、Java、Fortran、Ada、Pascal、Go和D语言等
二、GCC编译过程 预处理:处理宏定义、文件包含等,生成.i文件。例如,预处理hello.c生成hello.i。 编译:将预处理后的代码转换成汇编代码,生成.s文件。例如,编译hello.i生成hello.s。 汇编:将汇编代码转换成目标代码,生成.o文件。例如,汇编hello.s生成hello.o。 链接:将多个目标文件及库文件链接成可执行文件。例如,链接hello.o生成可执行文件hello。
三、GCC命令选项 选择编译阶段:通过指定不同的选项,可以选择执行预处理、编译、汇编或链接中的某一阶段。 静态库与共享库: 静态库:通过编译源文件生成.a文件,链接时使用static选项。 共享库:使用fPIC生成位置无关代码,链接时可能需要指定库路径和名称。如果找不到共享库,可以通过设置LD_LIBRARY_PATH环境变量、使用rpath或将库添加到系统路径来解决。
四、GCC命令示例 编译C程序:gcc hello.c o hello,将hello.c编译成可执行文件hello。 预处理:gcc E hello.c o hello.i,预处理hello.c生成hello.i。 编译并输出汇编代码:gcc S hello.c o hello.s,编译hello.c并输出汇编代码hello.s。 汇编并生成目标文件:gcc c hello.s o hello.o,汇编hello.s生成目标文件hello.o。 链接生成可执行文件:gcc hello.o o hello。
五、参考资料 GitHub上有详细的示例代码和文档,可供参考和学习,以更好地理解和掌握GCC命令的使用。