- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
共享函数库 如果某个函数使用共享函数库(如libc.so.N),那么此程序被链接到/usr/lib/libc.sa,这是一个特殊类型的函数库,它并不包含实际的函数,只是指向libc.so.N中的相应函数,并且只有在运行状态条用此函数时才将其调入内存。 这有两个好处,首先解决了浪费内存与磁盘空间的问题,其次使得函数库可以单独升级而不需要编译、链接应用程序。 在Linux下可以用ldd命令查询某个程序使用了哪些动态库。 创建、编译和执行第一个程序 C程序的开发是一个不断重复的过程,在以下4个步骤中将用到软件开发人员所熟悉的许多UNIX工具。 (1) 利用某个编辑器把程序的源代码编写到一个文本文件中。 (2) 编译程序。 (3) 运行程序。 (4) 调试程序。 不断重复执行前两个步骤,直到程序能够成功编译为止,然后对这一程序开始运行和排错。 小 结 在Red Hat Linux中集成了好几种编辑环境和编译器,它们为各种编程语言提供相应的开发环境,本章介绍了shell编程的一些基本知识,主要包括:创建shell脚本程序;shell变量、参数,以及shell的基本语法结构。 LUNIX建立在C语言的基础之上。C语言是与平台无关的、编译性的过程语言,它以函数为基础,并且具有派生由程序员定义的新的数据结构的能力。同时还简单介绍了C语言的产生、C语言编程思想,以及在Linux下如何用C语言进行编程。通过本章用户可以对Linux C程序的编译过程有个大概的了解。 * Makefile的隐含规则 在上面的例子中,几个产生目标文件的命令都是从“.c”的C语言源文件和相关文件通过编译产生“.o”目标文件,这也是一般的步骤。实际上,make可以使工作更加自动化,也就是说,make知道一些默认的动作,它有一些称作隐含规则的内置的规则,这些规则告诉make当用户没有完整地给出某些命令的时候,应该怎样执行。 Makefile的隐含规则 例如,把生成prog.o和code.o的命令从规则中删除,make将会查找隐含规则,然后会找到并执行一个适当的命令。由于这些命令会使用一些变量,因此可以通过改变这些变量来定制make。象在前面的例子中所定义的那样,make使用变量CC来定义编译器,并且传递变量CFLAGS(编译器参数)、CPPFLAGS(C语言预处理器参数)、TARGET_ARCH(目标机器的结构定义)给编译器,然后加上参数-c,后面跟变量$(第一个依赖文件名),然后是参数-o加变量$@(目标文件名)。综上所述,一个C编译的具体命令将会是: $ {CC} $ {CFLAGS} $ {CPPFLAGS} $ {TARGET_ARCH} –c $ -o $@ Makefile的隐含规则 在上面的例子中,利用隐含规则,可以简化为: OBJS=prog.o code.o CC=gcc test:${ OBJS } ${ CC } –o $@ $^ ?prog.o:prog.c prog.h code.h code.o:code.c code.h ?clean: rm –f *.o 使用automake和autoconf产生Makefile 在开始使用Automake和autoconf之前,请先确认系统已经安装以下的软件: GNU Automake GNU Autoconf GNU m4 Perl GNU Libtool (如果你需要产生 shared library) Automake 所产生的 Makefile 除了可以做到程序的编译和连接,也已经把如何产生程序文件的操作,以及把安装程序都考虑进去了,所以源程序所存放的目录架构最好符合GNU的标准惯例,下面用hello.c 来作为例子进行说明。 在工作目录下建立一个新的子目录devel,再在devel下建立一个hello的子目录,这个目录将作为存放 hello 这个程序及其相关文件的地方: 用编辑器写个hello.c文件: 使用automake和autoconf产生Makefile #include stdio.h int main(int argc, char** argv) { printf(Hello, GNU!\n); return 0; } 使用automake和autoconf产生Makefile 接下来就要使用 Autoconf 及 Automake 来产生Makefile文件,步骤如下: (1)autoscan 产生一个configure.in的模板,执行 autoscan 后会产生一个configure.scan 的文件,可以用它做为configure.in文件的模板: (2)编辑configure.scan文件,如下所示,并且把文件
您可能关注的文档
- 06系统接口部件--并行接口.ppt
- 物理化学——chapter2-6.ppt
- 大型互联网应用架构设计浅谈.ppt
- 解读阅兵——正式版.ppt
- 股市软件基本操作技巧教程.ppt
- 机关公文写作(2012公务员初任班).ppt
- 2011年万科地产置业顾问培训 2.ppt
- 生物信息的传递(下)mRNA--蛋白质.ppt
- 非结构网格在CFD中的应用.ppt
- 免疫血液学基础知识.ppt
- Unit 1 Keeping Healthy Lesson 2 课件 2-经典通用.ppt
- Unit 1 Playtime Lesson 1 同步练习1-经典通用.doc
- 2019电力用户农排费控采集系统第7部分农排费控终端信息交换安全技术规范.pdf
- 2024用电信息采集系统技术规范第2部分:集中器和采集器.docx
- 2019电力用户农排费控采集系统第3部分农排费控智能电能表型式规范.pdf
- 2019电力用户农排费控采集系统第4部分农排费控智能电能表信息交换安全技术规范.pdf
- 2019电力用户农排费控采集系统第5部分农排费控终端技术规范.docx
- 2019电力用户农排费控采集系统第3部分农排费控智能电能表型式规范.docx
- 2019电力用户农排费控采集系统第2部分农排费控智能电能表功能规范.pdf
- 2020水利工程建设标准强制性条文实施指南第2部分水利工程施工.docx
文档评论(0)