




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一节gcc编译器应用案例001: gcc编译器指令题目/任务1. 练习/熟悉gcc命令的使用知识点说明/训练要点1. man手册的使用2. gcc命令的使用实现步骤1 使用man手册,获取gcc使用帮助2. 使用gcc -help,获取简单的使用帮助实现指导1 在终端中输入man gcc,获取帮助文档 命令行:man gcc2. 在终端中输入gcc -help,获取简单帮助 命令行:gcc help应用案例002:编译连接成执行文件题目/任务1练习/熟悉gcc编译连接代码生成可执行文件知识点说明/训练要点1. 基本的编译执行文件的指令2. gcc命令的使用实现步骤1 .编写2个.c文件,使用
2、gcc生成可执行文件2. 使用o选项指定输岀文件的名字3. 使用x选项指定编译文件时所使用的语言4. 使用std二选项指定语言标准5. 使用ansi等同于-std=iso9899:1990选项6. 使用readelf执行显示可执行文件的所有信息实现指导1 创建目录,编写main.c与func.c文件 命令行:mkdir chol cd chol mkdir secol cd secol vi main.c vi func.c2. 使用gcc命令编辑一个和多个源文件 命令行:gcc main.cgcc main.c func.c3. 使用o选项指定输岀文件的名字 命令行:gcc -o main
3、main.cgcc -o main main.c func.c4. 使用x选项指定编译文件时所使用的语言 命令行:gcc -x c main.cgcc -x c+ main.c gcc x c+ -lstdc+ main.c5. 使用std=选项指定语言标准命令行:gcc -std=c89 main.cgcc -std=c99 main.cgcc std=c9x main.cgcc -std=c97 main.cgcc -std = iso9899:1990 main.c6. 使用ansi选项命令行:gcc -std = iso9899:1990 main.cgcc -std = iso989
4、9:1990 ansi main.cgcc ansi main.cgcc std=c99 ansi main.c7. 使用readelf执行显示可执行文件的所有信息 命令彳亍:readelf -a main应用案例003:编译目标文件题目/任务1. 练习/熟悉gcc编译目标文件知识点说明/训练要点1. 基本的编译执行文件的指令2. gcc命令的使用实现步骤1. 使用c选项编译.h文件和.c文件2. 使用objdump命令显示目标文件的相关工具实现指导1. 使用c选项编译.h文件和.c文件命令行:vi main.hgcc -c main.hgcc c main.c gcc -o main mai
5、n.o2. 使用objdump命令显示目标文件的相关工具 命令行:objdump -d main.o应用案例004:生成汇编与预处理文件题目/任务1 练习恿悉gcc编译生成汇编与预处理文件知识点说明/训练要点1. 基本的编译执行文件的指令2. gcc命令的使用实现步骤1. 使用s选项生成汇编文件名为.s文件2. 使用e选项生成预处理文件名j(c)或.ii(c+)3. 使用gcc处理汇编文件和预处理文件实现指导1. 使用£选项生成汇编文件名为.s文件 命令行:gcc -s main.c2. 使用e选项生成预处理文件名.i(c)或ii(c+) 命令彳亍:gcc -e -o main.i
6、main.c3. 使用gcc处理汇编文件和预处理文件 命令彳亍:gcc -o main main.igcc o main main.s应用案例005: gcc的预处理与内置宏题目/任务1. 练习/熟悉gcc的预处理与内置宏知识点说明/训练要点1. cpp命令查看代码中定义的宏2. gcc命令的使用实现步骤1. 使用cpp命令查看与代码无关的宏2. 使用cpp命令查看与代码有关的宏3. 使用cpp命令列出目标规则实现指导1. 使用cpp命令查看与代码无关的宏命令行:cpp -dm /dev/nullgcc -e -dm /dev/null2. 使用cpp命令查看与代码无关的宏命令行:卬p -dm
7、 ./main.cgcc -e -dm ./main.c3. 使用cpp命令列出目标规则命令行:cpp -mm -e main.cgcce main.ccpp -mm main.c应用案例006:编译并使用静态库题目/任务1. 练习/熟悉编译并使用静态库知识点说明/训练要点1. 制作静态库2. 使用静态库3. 使用与编译器有关的小工具实现步骤1创建tools.c与funcs.c文件,使用gcc -c生成.o目标文件2. 使用ar工具归档成.a静态库文件3. 按照目标文件的方式使用静态库4. 按照库的方式使用静态库5. 强制使用静态库编译6. 使用idd工具显示程序调用的动态库7. 使用nmtm
8、列出目标文件中的符号实现指导1 创建tools.c与funcs.c文件,使用gcc -c生成.0目标文件 命令行:vi funcs.cvi tools.c vi usestatic.c gcc c tools.cgcc c funcs.c2. 使用ar工具归档成.a静态库文件命令行:ar -r libmyku.a tools.o funcs.o3. 按照目标文件的方式使用静态库命令彳亍:gcc -o main libmyku.a usestatic.c gcc -o main usestatic.c libmyku.a4. 按照库的方式使用静态库命令彳亍:gcc -0 main usestat
9、ic.c -imyku -l.5. 强制使用静态库编译命令彳亍:gcc -0 main l. -static usestatic.c -imyku6. 使用idd工具显示程序调用的动态库命令行:gcc -0 main -l. -static usestatic.c -imyku -staticidd maingcc -0 main l.static usestatic.c -imykuidd main7. 使用nm工具列出目标文件中的符号 命令行:nm libmyku.a应用案例007:编译并使用动态库题目/任务1. 练习感悉编译并使用动态库 知识点说明/训练要点1. 制作动态库2. 使用动态
10、库实现步骤1 创建调用动态库的usesso.c文件2. 使用gcc命令生成动态库libmydllku.so3. 按照目标文件使用动态库4. 按照库文件使用动态库5.设置环境变量 ld_library_path,运行 main实现指导1创建调用动态库的usesso.c文件命令行:vi usesso.c2. 使用gcc命令生成动态库libmydllku.so命令彳亍:gcc -o libmydllku.so -shared -fpic funcs.c tools.c3. 按照目标文件使用动态库命令行:gcc -o main libmydllku.so usesso.cidd main4. 按照库文
11、件使用动态库命令彳亍:gcc o main l. -imydllku usesso.cidd maingcc o main -static libmydllku.so usesso.c5. 设置环境变量ld_library_path,运行main命令行:(注:可在/etc/profile 中加入 export ld_library_path = .) export ld_library_path=.idd main./mai n应用案例00&运行时加载动态库题目/任务1. 练习/熟悉运行时动态库加载知识点说明/训练要点1. 掌握动态库加载相关函数实现步骤1. 仓曬dl2.c文件,并生成
12、动态库2. 创建怕stdl.c文件,编译,执行,查看结果实现指导1. 创建d2c文件,并生成动态库 命令行:vi dl2.cgcc -o libdll.so -shared -fpic dl2.c2. 创建testdl.c文件編译,执行,查看结果 命令行:vi testdl.cgcc -o main testdl.c ldl ./mai n应用案例009: gcc编译器的语法扩展题目/任务1. 练习/熟悉gcc编译器的语法扩展知识点说明/训练要点1. 基本语法扩展2. 特殊属性声明实现步骤1. 创建d2c文件,并生成动态库2. 仓曬testdl.c文件編译,执行,查看结果3. 创建cattri
13、butel.c文件,了解常见变量属性4. 创建cattribute2.c文件,了解常见函数属性实现指导1. 创建cextends.c文件,了解基本语法扩展命令行:vi cextends.cgcc o main cextends.c./main2. 仓曬cattribute.c文件,了解常见类型属性 命令行:vi cattribute.cgcc cattribute.c./a.out3. 创建cattributel.c文件,了解常见变量属性 命令行:vi cattributel.cgcc cattributel.c./a.out4. 仓腱cattribute2.c文件,了解常见函数属性 命令行:
14、vi cattribute2.cgcc cattribute2.c./a.out应用案例010:其他编译选项题目/任务1. 练习/熟悉其他编译选项知识点说明/训练要点1. 检查语法的选项2. 打印编译中每个函数名与统计时间的选项3. 编译器打印时间统计的选项4. 编译器打印内存统计的选项实现步骤1. 使用fsyntaxonly选项,检查语法2. 使用q选项,打印编译中每个函数名与统计时间3. 使用-ftime-report选项,打印时间统计4. 使用fmemreport选项,打印内存统计实现指导1. 使用fsyntaxonly选项,检查语法命令行1: gcc fsyntax-only catt
15、ribute.c2. 使用q选项,打印编译中每个函数名与统计时间 命令行:gcc -q cattribute.c3. 使用ftimereport选项,打印时间统计命令彳亍:gcc -ftime-report cattribute.c4. 使用fmemreport选项,打印内存统计命令彳亍:gcc -fmem-report cattribute.c第二节基本格式输入输出应用案例011: printf格式输出题目/任务1. 练习/熟悉printf格式输岀知识点说明/训练要点1printf格式输岀实现步骤1 创建printf.c使用printf函数格式输岀小数和字符串2. 创建printfl .c,
16、在printf函数中使用常用类型指示器3. 创建printf2.c,在printf函数中使用输出精度和宽度4. 仓曬printf3.c,在printf函数中使用标记实现指导1创建printf.c,使用printf函数格式输出小数和字符串 命令行:vi printf.cgcc -o main printf.c./mai n2. 创建printfl .c,在printf函数中使用常用类型指示器 命令行:vi printfl.cgcc o main pint:flc./main3. 创建printf2.c,在printf函数中使用输出精度和宽度 命令行:vi printf2.cgcc -o main
17、 printf2.c./main4. 创建printf3.c,在printf函数中使用标记 命令行:vi printf3.cgcc -o main printf3.c./mai n应用案例012: scant格式输入题目/任务1. 练习/熟悉scanf格式输出知识点说明/训练要点1. scanf格式输出实现步骤1 创建scanf.c,使用printf函数格式输出小数和字符串2. 创建scanfl .c,使用scanf函数的*格式的使用3. 创建scanf2.c,使用scanf函数的a格式的使用4. 创建scanf3.c使用scant函数的整数的使用实现指导1创建scanf.c,使用scanf函
18、数接受输入的数据 命令行:vi scanf.cgcc -o main seanf.c./mai n2. 创建scanfl .c,使用scanf函数的*格式的使用 命令行:vi scanf 1.cgcc -o main seanfl.c./mai n3. 创建scanf2.c便用scanf函数的a格式的使用 命令行:vi scanf2.cgcc -o main seanf2.c./mai n4. 创建scanf3.c便用scanf函数的整数的使用 命令行:vi scanf3.cgcc -o main seanf3.c./mai n第三节错误处理应用案例013: errno与异常信息题目/任务1.
19、 获取errno与异常信息知识点说明/训练要点1. 获取错误的类别2. 使用代码获取错误信息描述的方式实现步!1. 使用man手册,查看错误的类别2. 创建error.c文件,使用代码获取错误信息描述实现指导1. 使用man手册,查看错误的类别命令行:man errno2. 创建error.c文件,使用代码获取错误信息描述命令行:vi error.cgcc -o main error.c./mai n第四节make与makefile应用案例014: make工具的工作机制题目/任务1. make!具的工作机制知识点说明/训练要点1. make工具的用法2. make工具的工作原理实现步骤1创建
20、mymkfile.txt文件和testmake.c文件2. 使用make命令,执行pro单元3. 使用make命令,执行clean单元实现指导1创建mymkfile.txt文件和testmake.c文件 命令行:vi mymkfile.txtvi testmake.c2. 使用make命令,执行pro单元 命令行:make promv mymkfile.txt makefile make pro3. 使用make命令,执行clean单元 命令行:make clean应用案例015: make的目标(target)题目/任务1. 掌握make的目标(target)知识点说明/训练要点1. mak
21、e的语法2. make的目标之间的依赖实现步骤1 创建mymkfilel .txt文件,当依赖的目标不存在,使make启动潜规则2. 仓曬mymkfile2.txt文件当依赖的目标存在使make自动执行依赖 实现指导1创建mymkfilel .txt文件,当依赖的目标不存在,使make启动潜规则 命令行:vi mymkfilel.txtcp mymkfilel.txt makefilemake main2. 创建mymkfile2.txt文件,当依赖的目标存在使make自动执行依赖 命令行:vi mymkfile2.txt应用案例016: makefile的变量题目/任务1掌握makefile
22、的变量的语法,用法知识点说明/训练要点1. make的变量的语法2. make的变量的使用实现步骤1 仓曬mymkfile3.txt文件,定义变量,使用注释和续行符号2. 创建mymkfile4.txt文件,使用变量赋值符号3. 创建mymkfile5.txt文件,使用=变量赋值符号4. 创建mymkfile6.txt文件,使用?=变量赋值符号5. 创建mymkfile7.txt文件,使用+二变量赋值符号6. 创建mymkfile8.txt文件,使用make命令内部的特殊变量7. 创建mymkfile9.txt文件,使用make变量的高级用法实现指导1创建mymkfile3.txt文件,定义变
23、量,使用注释和续行符号 命令行:vi mymkfile3.txtcp mymkfile3.txt makefilemake cleanmake pro2. 仓曬mymkfile4.txt文件,使用=变量赋值符号 命令行:vi mymkfile4.txtcp mymkfile4.txt makefilemake result3. 创建mymkfile5.txt文件,使用:=变量赋值符号 命令行:vi mymkfile5.txtcp mymkfile5.txt makefilemake result4. 仓曬mymkfile6.txt文件,使用?=变量赋值符号 命令行:vi mymkfile6.t
24、xtcp mymkfile6.txt makefilemake result5. 仓曬mymkfile7.txt文件使用+=变量赋值符号 命令行:vi mymkfile7.txtcp mymkfile7.txt makefilemake result6. 创建mymkfile8.txt文件,使用make命令内部的特殊变量 命令行:vi mymkfile8.txtcp mymkfile8.txt makefilemake pro7. 创建mymkfile9.txt文件 使用make变量的高级用法 命令行:vi mymkfile9.txtcp mymkfile9.txt makefilemake
25、promake main应用案例017: makefile的条件判定题目/任务1. 掌握makefile的条件判定知识点说明/训练要点1. makefile的条件判定的语法实现步骤1创建mymkfile10.txt文件使用makefile的定义与未定义判定 实现指导1 创建mymkfile10.txt文件使用makefile的定义与未定义判定 命令行:vi mymkfilelo.txtcp mymkfilelo.txt makefilemake main应用案例018: makfile通配符的使用题目/任务1. 掌握makfile通酉己符的使用知识点说明/训练要点1makfile通配符的使用实
26、现步骤1 创建mymkfilel 1 .txt文件,使用makefile的通配符实现指导1. 创建mymkfilel 1 .txt文件,使用makefile的通配符 命令行:vi mymkfilell.txtvi hello.ccp mymkfilell.txt makefile make main应用案例019: makefile函数的使用题目/任务1. 掌握makefile函数的使用知识点说明/训练要点1. makefile函数的调用语法2. makefile函数的分类实现步骤1创建makefun.txt文件,使用makefile中的字符串处理函数2. 创建makefurd .txt文件,
27、使用makefile中的文件名处理函数3. 创建makefun2txt文件,使用makefile中的控制函数4. 创建makefun3.txt文件,使用makefile中的计算函数5. 创建makefun4.txt文件,使用makefile中的shell函数6. 创建makefun5.txt文件,使用makefile中的调试函数实现指导1. 创建makefun.txt文件,使用makefile中的字符串处理函数 命令行:vi makefun.txtcp makefun.txt makefilemake main2. 创建makefunl .txt文件,使用makefile中的文件名处理函数 命
28、令行:vi makefun1.txtcp makefun1.txt makefilemake main3. 创建makefun2txt文件,使用makefile中的控制函数 命令行:vi makefun2.txtcp makefun2.txt makefilemake main4. 创建makefun3.txt文件,使用makefile中的计算函数 命令行:vi makefun3.txtcp makefun3.txt makefilemake main5. 创建makefun4.txt文件,使用makefile中的shell函数 命令行:vi makefun4.txtcp makefun4.t
29、xt makefilemake main6. 创建makefun5.txt文件,使用makefile中的调试函数 命令行:vi makefun5.txtcp makefun5.txt makefilemake main应用案例020:影响make的环境变量题目/任务1. 影响make的环境变量知识点说明/训练要点1. make的变量2. make的变量定义实现步骤1. 创建makenv.txt文件,使用makefile中的字符串处理函数2. 创建makenvl .txt文件,使用make命令行中定义变量实现指导1. 创建makenv.txt文件,查看make所有变量命令行:vi makenv.
30、txtcp makenv.txt makefile make showvar2. 创建makenvl .txt文件,使用make命令行中定义变量 命令行:vi makenvl .txtcp makenvl .txt makefile make main应用案例021:命令、+、符号的使用题目/任务1. make的命令符号的使用知识点说明/训练要点1. make的执行规则2. make的命令符号的使用实现步骤1 创建makecmd.txt文件,使用makefile中的命令符号实现指导1. 创建makecmd.txt文件,使用makefile中的命令符号 命令行:vi makecmd.txtcp
31、makecmd.txt makefilemake main应用案例022:使用命令包题目/任务1make的define定义变量知识点说明/训练要点1. make的define命令定义多行变量实现步骤1 创建makemultiline文件,使用define定义命令包2. 创建makefuncition文件,使用define定义函数实现指导1 创建makemultiline文件,使用define定义命令包 命令彳亍:vi makemultilinemake -f makemultiline main2. 创建makefuncition文件,使用define定义函数 命令行:vi makefunct
32、ionmake -f makefunction main应用案例023: makefile嵌套调用题目/任务1. makefile的嵌套调用知识点说明/训练要点1. 脚本的引入2. 多脚本的合并3. 并行处理多个脚本4. 切换目录执行脚本实现步1创建makefilel ,makefile2文件,使用include引入脚本2. 修改makefile2文件,使用make的f选项合并处理多个脚本3. 使用上2文件,使用makefiles环境变量4. 在当前目录创建makefile3文件,创建./subdir/makefile3文件,使用make指 定不同脚本5. 创建makefile4文件,使用不同
33、的指令1. 创建makefilel ,makefile2文件,使用include引入脚本命令行:vi makefilelvi makefile2 make -f makefile2 main2. 修改makefile2文件,使用make的f选项合并处理多个脚本命令行:vi makefile2make -f makefilel -f makefile2 main3. 使用上2文件,使用makefiles环境变量命令行:export makefiles=makefilel makefile2 make f makefile? main4. 在当前目录创建makefile3文件,创建./subdir
34、/makefile3文件,使用make指 定不同脚本命令行:vi makefile3mkdir p subdirvi subdir/makefile3make f makefile3 main5. 创建makefile4文件,使用不同的指令命令行:vi makefile4第五节gdb与调试应用案例024: gdb命令与使用题目/任务1. makefile的嵌套调用知识点说明/训练要点1. 工具gdb命令说明2. gdb使用方式实现步骤1 创建core.c文件,编译成可执行文件2. 开启core文件输出3. 执行a.out,生成core文件启动gdb1. 创建core.c文件,编译成可执行文件 命令行:vi core.cgcc core.c2. 开启core文件输出 命令行:ulimit -aulimit -c unlimited3. 执行a.out,生成core文件启动gdb 命令行:./a.outisgdb ./a.out core.290
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考试心态调整特许金融分析师考试试题及答案
- 证券投资中的人机结合分析试题及答案
- 2025年财务报告标准变动试题及答案
- 2025年CFA考试资本市场操作试题及答案
- 微生物分析报告的撰写技巧试题及答案
- 2024年项目管理新挑战及应对策略试题及答案
- 预备工作2025年证券从业资格证试题及答案
- 矿山安全应急预案与演练-石墨滑石考核试卷
- 2025年审计审查重点试题及答案
- 矿山环境管理与生态断层监测考核试卷
- 2023装配式建筑标准化产品系列图集(预制内墙条板)SJT 03-2023
- 远动设备故障处理措施
- 《真空热处理炉》课件
- 医院检验科实验室生物安全管理手册
- 企业财务管理优化方案
- NB-T 47013.2-2015 承压设备无损检测 第2部分-射线检测
- 实用版建筑工程工程合同模板
- 新型马路划线机设计
- 《儿科学》课件第9章第九节 腹泻病
- 小学生主题班会 拒绝作弊+诚信考试+宣传教育 课件(共28张PPT)
- 职业病危害与防治培训PPT模板(含完整内容)13
评论
0/150
提交评论