- 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语言的标准 ANSI C POSIX SVID XPG GNU C C语言开发环境简介 简单的程序编辑器是vi/vim、gedit和emacs,其中vim是vi的升级版 高级的IDE集成开发环境则有Eclipse CDT、Source Insight和KDevelop等 C头文件和C函数库 用C语言进行程序设计时,我们要用到头文件来提供对常量的定义和对系统及库函数调用的声明。 库是一组预先编译好的函数的集合,这些函数都是按照可重用的原则编写的。 gcc简介 名称: GNU project C and C++ Compiler GNU Compiler Collection 管理与维护 GNU项目 对C/C++编译的控制 预处理(Preprocessing) 编译(Compilation) 汇编(Assembly) 链接(Linking ) GCC文件扩展名规范 (1).c为后缀的文件,是C语言源代码文件。 (2).h为后缀的文件,是头文件。 (3).C,.cc、.cpp、.cp或.cxx为后缀的文件,是C++源代码文件。 (4).h为后缀的文件,是程序所包含的头文件。 (5).i为后缀的文件,是已经预处理过的C源代码文件。 (6).ii为后缀的文件,是已经预处理过的C++源代码文件。 (7).m为后缀的文件,是Objective-C源代码文件。 (8).o为后缀的文件,是编译后的目标文件。 (9).s为后缀的文件,是汇编语言源代码文件。 (10).S为后缀的文件,是经过预编译的汇编语言源代码文件。 gcc的使用 基本使用格式 $ gcc [ 选项 ] 文件名 常用选项及含义 gcc的常用选项 gcc的常用选项 使用gcc编译代码 生成预处理文件 命令 $gcc –E hello.c –o hello.i 生成汇编文件 命令 $gcc –S hello.c –o hello.s 生成对应的目标文件 gcc -c hello.c -o hello.o 目标代码并不能在CPU上运行,但它离二进制可执行文件已经很近了,再输入以下编译指令即可生成二进制可执行文件。 [root@localhost~]# gcc hello.o -o hello 编译多个文件 对于多文件组成的项目,采用GCC编译有两种方案:一步编译和分步编译 采用一步编译 : gcc hello.c say_hello.c -o hello 分步编译的方案 : 思路: 编译每一个.c文件,得到.o的目标文件; 将每一个.o的目标文件链接成一个可执行的文件; gcc -c say_hello.c -o say_hello.o gcc hello.o say_hello.o -o hello 上例的项目目录结构调整如下: 文件hello.c引用的头文件say_hello.h不在当前目录中,也不在GCC默认的头文件搜索路径/usr/include中,这时我们应该使用-I选项指定搜索头文件的特殊目录,具体编译指令如下: gcc hello.c functions/say_hello.c -o hello-Ifunctions C程序调试 静态调试 用在程序编译阶段查错并修正错误,它主要利用GCC编译器对语法错误的检查进行排错。 动态调试 用在程序运行阶段的错误检查与修正,适用于检查算法的错误、输入输出的错误等。 gdb(GNU DeBugger) 调试工具 为了使gdb正常工作,必须使用-g选项编译源文件,使程序在编译时包含调试信息。 进入gdb环境 [root@localhost~]# gdb GNU gdb Red Hat Linux(6.5-25.el5rh) Copyright(C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type show copying to see the conditions. There is absolutely no warranty for GDB. Type show warranty for details. This GDB was configured as i386-redhat-linux-gnu. (gdb) 动态调试举例 常见的动态调试方法: 增加调试语句 ; 记录程序的执行状况 ; 观察内存
您可能关注的文档
- Linux系统管理 教学课件 作者 董良 宁方明 7.ppt
- Linux系统管理 教学课件 作者 董良 宁方明 8.ppt
- Linux系统管理 教学课件 作者 董良 宁方明 9.ppt
- Linux系统管理 教学课件 作者 董良 宁方明 10.ppt
- Linux系统管理 教学课件 作者 董良 宁方明 11.ppt
- Linux系统管理 教学课件 作者 董良 宁方明 12.ppt
- Linux系统管理 教学课件 作者 董良 宁方明 13.ppt
- Linux系统管理 教学课件 作者 董良 宁方明 14.ppt
- Linux系统管理 教学课件 作者 董良 宁方明 15.ppt
- Linux系统管理 教学课件 作者 董良 宁方明 16.ppt
- Linux系统应用与开发教程 教学课件 作者 邝颖杰 ch10.ppt
- Linux系统应用与开发教程 教学课件 作者 邝颖杰 ch11.ppt
- Linux系统与网络管理 教学课件 作者 崔连和 答案 试题01(答案).doc
- Linux系统与网络管理 教学课件 作者 崔连和 答案 试题02(答案).doc
- Linux系统与网络管理 教学课件 作者 崔连和 答案 试题03(答案).doc
- Linux系统与网络管理 教学课件 作者 崔连和 答案 试题04(答案).doc
- Linux系统与网络管理 教学课件 作者 崔连和 答案 试题05(答案).doc
- Linux系统与网络管理 教学课件 作者 崔连和 答案 试题06(答案).doc
- Linux系统与网络管理 教学课件 作者 崔连和 答案 试题07(答案).doc
- Linux系统与网络管理 教学课件 作者 崔连和 答案 试题08(答案).doc
最近下载
- 水泥基工程复合材料ECC的研究与应用论文.pdf VIP
- 血透室品管圈.pptx
- 《新能源汽车维护与保养》教案 第11课 车身电气设备维护与保养.doc VIP
- GB 20951-2020 油品运输大气污染物排放标准(高清版).doc VIP
- 2025-2026学年小学信息技术(信息科技)三年级上册湘科版(2024)教学设计合集.docx
- 优质纪念中国人民抗日战争暨世界反法西斯战争胜利80周年PPT课件.pptx
- 第八章 现代生物技术在环境保护中的应用.ppt VIP
- 千年古县申报材料-牟平.doc VIP
- 慢性咳嗽诊治指南ppt课件.pptx VIP
- 企业安全生产风险辨识评估管控指导手册-件杂货码头.pdf VIP
文档评论(0)