- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux 程序开发与调试
第4章 程序开发和调试 主要内容 GCC make makefile gdb CVS RCS 开发工具 File Name Suffix GCC简介 名称: GNU project C and C++ Compiler 管理与维护 GNU项目 对C/C++编译的控制 – 预处理(Preprocessing) – 编译(Compilation) – 汇编(Assembly) – 链接(Linking ) 基本使用格式 $ gcc [ 选项] 文件名 常用的gcc编译命令选项 假设源程序文件名为test.c。 1. 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理、汇编、编译并链接形成可执行文件。 文件。这里未指定输出文件,默认输出为a.out 2. 选项 -o 用法:#gcc test.c -o test 作用:将test.c预处理、汇编、编译并链接形成可执行文件 test。-o选项用来指定输出文件的文件 常用的gcc编译命令选项 3. 选项 -c 用法:#gcc -c test.s 作用:将汇编输出文件test.s编译输出test.o文件 4. 选项-O[0、1、2、3] 用法:#gcc -O1 test.c -o test 作用:使用编译优化级别1编译程序。级别 别越大优化效果越好,但编译时间越长。缺省的情况为2级优化,0为不进行优化 5. 选项-g 用法:#gcc -g test.c -o test 作用:在可执行文件中加入调试信息,方便用gdb进行程序的调试。 gcc 其他选项 -Idir: 指定额外的头文件搜索路径 -Ldir: 指定额外的库文件搜索路径 -lname: 链接时搜索指定的库文件 -DMACRO[=DEFN]: 定义MACRO宏,相当于C语言中的#define MACRO=DEFN -x language filename :设定文件所使用的语言,使后缀名无效 -ansi :只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色,例如 asm 或 typeof 关键词。 示例源程序 示例源程序—hello.c #include stdio.h int main(void) { printf(hello gcc!\r\n); return 0; } 生成预处理文件 命令 $gcc –E hello.c –o hello.i 生成汇编文件 命令 $gcc –S hello.c –o hello.s 生成二进制文件 生成目标文件 $gcc –c hello.c –o hello.o 生成可执行文件 $gcc hello.c –o hello 运行程序 $./hello hello gcc! 编译多个文件 文件清单 编译多个文件 编译多个文件 Libraries Files 库是一组预先编译好的函数的集合。标准的库文件一般存储在/lib和/usr/lib目录中。库文件的命名总是以lib开头,如libm.a 函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。 Libraries Files Static Libraries (.a files) gcc -c + ar crv 如 ar crv libfoo.a bill.o fred.o Dynamic Libraries/Shared Objects (.so files) 共享代码 gcc –shared -fPCI 该选项指定生成动态连接库 如gcc -shared -fPCI -o libmyhello.so hello.o 查看一个可执行程序依赖哪些库$ldd program 多个源文件带来的问题 /* main.c */ #include “a.h” ... /* 2.c */ #include “a.h” #include “b.h” ... /* 3.c */ #include “b.h” #include “c.h” make makefile Multi-file project IDE make make makefile makefile描述模块间的依赖关系; 大多数IDE都有这个命令,例如:Delphi的make Visual C++的nmake,Linux下GNU的make make命令根据makefile对程序进行管理和维护;make判断被维护文件的时序关系 make命令的选项和参数 make [-f fil
您可能关注的文档
- 适合婴幼儿食用各种粥制作攻略.doc
- 造字法中转注和假借.doc
- A Solitary Pleasure 独乐不如同乐.doc
- 财务管理第5章——投资决策原.ppt
- 组织行为学专题3习题汇总.doc
- 郑州大学现代远程教育《行政法学》课程作业与答案.doc
- 酵母铬功效.doc
- 销售中沟通和谈判.ppt
- 锌作用以与对人影响.doc
- 长方体正方体习题与答案.doc
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)