- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实例分析 $ gcc -fPIC -c exam5-2.c # 生成目标文件exam5-2.o $ gcc -fPIC -c exam5-3.c # 生成目标文件exam5-3.o # 生成共享库libdemo.so $ gcc -shared exam5-2.o exam5-3.o -o libdemo.so 使用共享库 $ gcc exam5-5.c -L. -ldemo -o exam5-5 注意,在当前目录下只有共享库libdemo.so。若在当前目录下同时存在libdemo.a和libdemo.so,默认情况下,首先使用共享库,若需使用静态库,可加上选项-static,例如: $ gcc -static exam5-5.c -L. -ldemo -o exam5-5 4、共享库特点 1、不能离开外部库的支持 2、运行速度比较慢 3、执行文件体积小 4、容易维护 5.3.3动态链接库 与一般使用共享库不同,通常,应用程序在启动时,不立即加载共享库,而是在需要时,动态加载共享库。 在这种情况下,称共享库为动态链接库。 动态链接库的使用 自学 程序5-6 5.4 GNU C 函数库:glibc 1.glibc概述 1、glibc属于GNU的自由软件。glibc封装了内核接口的硬件特性,实现了对多种标准接口协议的支持,同时,也提供了众多与内核无关的函数集。 2、可在不同的操作系统和硬件平台迁移 3、glibc支持ISO C,POSIX,SVID等。 2、Linux系统中的glibc 头文件 /usr/include: // 系统头文件 /usr/local/include: // 本地头文件 函数库 /lib: // 系统必备共享库 /usr/lib: // 标准共享库和静态库 /usr/X11R6/lib: // X11R6 的函数库 /usr/local/lib: // 本地函数库 Linux系统调用与glibc的关系 程序5-8 #include stdio.h int main(void) { printf(“hello”); } 同时参见程序5-7,使用软中断实现字符串输出。 Linux系统调用与glibc的关系 1、glibc函数库是应用程序和Linux内核之间的中间层。 2、它封装了Linux内核接口的硬件特性。 3、为应用程序提供标准应用程序编程接口。 课堂作业1 根据程序5-2、5-3、5-4和5-5,编写对应的make文件,同时要求有删除产生的.o文件的功能。 每人拿出一张纸,课堂完成。 课堂作业1答案 exam5-2.o:exam5-2.c gcc -c exam5-2.c exam5-3.o:exam5-3.c gcc -c exam5-3.c exam5-5.o:exam5-5.c exam5-4.h gcc -c exam5-5.c exam5-5:exam5-5.o exam5-3.o exam5-2.o gcc -o exam5-5 exam5-5.o exam5-3.o exam5-2.o clean: rm *.o 课堂作业2 将课堂作业1的三个.o文件用自定义变量替换来处理。目标文件和依赖文件用自动变量来替换。 课堂作业2答案 OBJS=exam5-5.o exam5-3.o exam5-2.o exam5-2.o:exam5-2.c gcc -c $ exam5-3.o:exam5-3.c gcc -c $ exam5-5.o:exam5-5.c exam5-4.h gcc -c $ exam5-5:exam5-5.o exam5-3.o exam5-2.o gcc -o $@ $(OBJS) clean: rm *.o 第5章 GNU C 开发环境 郑谦益 韩京宇 内容提要 5.1 GNU C 编译器 5.2 项目管理工具:GNU make 5.3 创建和使用函数库 5.4 GNU C 函数库:glibc 5.1.1目标代码生成 5.1.2 GCC概述 GCC概述 GCC(GNU Compiler Collection)是GNU下编译器及其相关工具的集合。GCC 原名为 GNU C 语言编译器,目前在功能上得到了不断扩展: (1) 支持多种高级语言 (C,C++,JAVA,FORTRAN,PASCAL) (2) 支持多种硬件处理器 (x86,ARM,PowerPC) (3) 支持多种操作系统平台(LINUX,WINDOWS,SOLARIS) 5.1.3 gcc 编译器
您可能关注的文档
最近下载
- 长沙市长郡中学2022-2023学年高一下学期期末考试物理试卷(含答案).docx VIP
- 2024年湖南省高中学业水平合格性考试英语试卷真题(含答案详解).docx VIP
- 道依茨 TCD4.1 6.1操作手册.pdf
- 湖南省长沙市长郡中学2022-2023学年高一下学期第一次适应性检测数学试卷含答案.docx VIP
- 中国联通CDMA网络租赁费收益计划募集说明书.pdf
- 人教版四年级上册数学《公顷和平方千米整理和复习》(课件).pptx
- 湖南省长沙市长郡中学2022-2023学年高一下学期第一次月考物理试卷含答案.pdf VIP
- 信贷基础知识培训课件.ppt VIP
- 2025年湖南省长沙市长郡教育集团中考数学模拟试卷(四).pdf VIP
- 2025《建筑施工行业公司事故隐患内部报告奖励管理制度》新修订版.docx
文档评论(0)