- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux下的C程序编程 主要内容 GCC编译器 一、GCC编译器 1、GCC是什么 GCC(the GNU Complier Collection,GNU编译工具合集)。包括预编译(cpp)、编译(gcc),与make、连接(ld)、调试(gdb)等多个编译过程的常用工具一起组成GNU开发工具链。 GCC1.0于1987年5月发布,历经20余年的发展,已经成为一款功能强大的世界级优秀编译工具。支持多种语言的编译,包括C、C++、Ada、Fortran、Java等,并且包含这些语言相应的开发支持库(可到GCC官网/下载所用开发语言的编译器,gcc、g++、gcc-java等)。 GCC的优点 与其他一些软件公司出品的编译器比较,GCC生成的可执行文件具有代码长度短、执行效率高等特点。 具有较强的灵活性和高度的可移植性。安装GCC时做些简单设置或对GCC源码进行少量修改,就可以使GCC完成在不同指令系统的交叉编译,极大地方便了嵌入式设备的软件开发。 可方便地与其他软件和协议对接。 GCC(GNU C Complier)是符合ANSI C标准的多平台编译器。GCC通过后缀来区别输入文件的类型,集成C、C++、JAVA等多种语言编译器。 c C语言源代码文件。 h 程序所包含的头文件。 o 编译后的目标文件。 i 已经预处理过的C源代码文件。 s 汇编语言源代码文件。 S 经过预编译的汇编语言源代码文件。 C、cpp、.cc或.cxx C++源代码文件。 ii 己经预处理过的C++源代码文件。 a 由目标文件构成的档案库文件。 2.GCC的安装 网络在线安装 sudo apt-get install gcc ,g++ sudo apt-get install build-essential(安装相应的头文件) gcc --version 演示helloworld hello.c #include stdio.h int main(void) { print (“hello world!\n”); return 0; } 编译运行这段程序: gcc hello.c –o hello ./hello 输出:hello world! 3.GCC工作流程 gcc是c语言程序编译器。一个C语言程序编译过程如下: 编辑:写源码 预处理:系统加载头文件和展开宏,仅对文本信息处理,是编译前的准备、整理。 编译:将C语言转换为对应的计算机机器码,生成二进制文件。但若有多个模块,此时的文件还不能执行,因为各模块还相对独立,相互使用的地方还是标记。 链接:将模块合成一个可执行的整体。 gcc通过分别调用预处理、编译、链接工具,自动完成C程序的编译工作。 以 hello.c 程序为例 预处理 gcc –E hello.c –o hello.i (stdio.h 的内容插到文件当中) 将hello.i 编译为目标代码 gcc –c hello.i –o hello.o 将生成的目标文件链接成可执行文件 gcc hello.o –o hello 当处理的文件不只一个时,仍然会按照预处理、编译和链接的过程依次执行 gcc –c foo1.c –o foo1.o gcc –c foo2.c –o foo2.o gcc foo1.o foo2.o –o foo 4.基本使用 gcc hello.c 编译生成可执行文件,结果为a.out gcc –o hey hello.c 编译生成可执行文件,结果为hey GCC有超过100个的编译选项。选项的合理使用对编译调试程序有很大作用。 利用优化选项告诉gcc产生更小更快的可执行文件,典型的如-O告诉gcc进行基本优化、-O2产生尽可能小、快的代码。 利用调试选项方便调试剖析,如-g产生能被gdb使用的调试信息。 更多调试选项可查阅man及其他手册或资料。 常用参数列表 -w 关闭所有警告,建议不要使用此项-Wall 允许发出gcc能提供的所有有用的警告,也可以用-W(warning)来标记指定的警告 常见错误 语法错误: 错误信息:文件source.c中第 n 行有语法错误(syntex error)。 头文件错误 错误信息:找不到头文件head.h ( can not find include file head.h)。 函数库错误 错误信息:链接程序找不到所需的函数库。如:ld:-lm:No such file or directory 二、GDB调试器 1、GDB介绍 GDB调试器主要用于调试可执行文件,这个文件必须提供调试版本,包含调试信息。 所以,编译程序时一定
您可能关注的文档
- 第六章 双孢菇栽培.ppt
- 我的时代,我的“五·四”.ppt
- 【必修3】2.5矿产资源合理开发和区域可持续发展(湘教版)2.ppt
- 第6章 构造运动与地壳运动.ppt
- 太原万柏林区房地产市场分析报告 0113.ppt
- 经济增长与人口问题.ppt
- 2010-02从现实世界到比特世界.pptx
- 5镜头的种类及其5.ppt
- 2成本性态(上).ppt
- 第三章2 - 美好的人生追求----树立积极进取的人生观.ppt
- 《DZT 0071-1993地面高精度磁测技术规程》专题研究报告:穿越时代的勘探基石与未来创新之路.pptx
- 印制板定位孔打孔机器人:技术革新与应用探索.docx
- 循证护理教育:需求洞察与课程构建探索.docx
- 深度解析(2026)《LYT 1740-2008木器用不饱和聚酯漆》:从标准透视技术演进与未来应用.pptx
- 《DZT 0073-1993电阻率剖面法技术规程》专题研究报告:面向未来的地球物理勘探深度.pptx
- 面向高效网络资源利用的约束路由与动态业务量疏导算法深度剖析与实践.docx
- 深度解析(2026)《LYT 1742-2008银杏叶聚戊烯醇软膏》.pptx
- 安全协议形式化验证技术:原理、方法与实践的深度剖析.docx
- 树状大分子聚酰胺 - 胺:制备工艺解析与染整应用创新研究.docx
- 基于ZigBee技术的室内无线定位:原理、应用与挑战.docx
原创力文档


文档评论(0)