第09讲-LINUX平台上的软件开发.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第09讲-LINUX平台上的软件开发

Linux 平台上的软件开发 陈华宾 电话:0592-2580185 手机厦门) E-MAIL:chb@ 主页: * * Linux 平台上的软件开发 ◆程序开发过程 ◆ 代码生成 ◆ 多模块软件的编译和链接 ◆源代码调试 程序开发过程 ◆计算机编程语言概述 ※ 计算机硬件 ※ 机器语言--110011001111 ※ 汇编语言--MOV A,#03H ※ 高级语言--C、C++等 ※ 第四代语言--visual BASIC等 ?执行时间和编程的简易性 ◆编程语言 ※ 命令性编程语言:变量、赋值和迭代,如C、C++、Java ※ 函数性编程语言:递归调用函数实现 ※ 逻辑编程语言 ※ 面向对象编程语言:类(数据和方法)和对象 ※ 脚本语言:在文件中加入一序列被解释程序执行的命令 ※ 标记语言 ◆编程范式 ※ 每种编程语言类型都属于一种编程范式 ※ 过程化编程范式 ※ 面向对象编程范式 ◆编译过程 ※ 编译性语言-转换成机器代码 ※ 解释性语言-由另一个程序执行 代码生成 ◆生成程序源文件 使用vi文本编辑器 ◆编译C程序 ※ gcc-Linux和Unix最常用的C编译程序 ※ 语法 gcc [options] [filenames] ※工作-执行预处理、编译、汇编和链接,最后产生可执行代码 ※默认情况下,可执行代码放在a.out中 ※常用的选项 显示出命令的的执行情况 –v 优化。级别为0-3,数字越大,优化的级别越高 –O[级别] 链接到‘lib’库 –llib 创建符号表、使用gdb(调试器)时所用到的分析和调试信息 –g 取消链接阶段和维护目标文件(.o文件) –c 创建可执行代码并保存在file中,而不是a.out -o file 选项含义 选项 [root$xmu root]# vi hello.c #include stdio.h int main() { printf(“hello world\n”); return 0; } [root$xmu root]# gcc -o hello hello.c [root$xmu root]# ./hello hello world [root$xmu root]# ※举例 ◆编译多个源文件 [root$xmu root]# gcc -o polish hello.c driver.c stack.c 如果三个源文件有一个被修改,要重新输入以上命令行 ※编译时间长 ※重复工作 为所有的源文件创建目标模块,只是重新编译那些更新了的模块 ※举例 [root$xmu root]# gcc -c hello.c driver.c stack.c [root$xmu root]# gcc -o polish hello.o driver.o stack.o 假定更新了其中一个源文件driver.c [root$xmu root]# gcc -c driver.c [root$xmu root]# gcc -o polish hello.o driver.o stack.o ◆链接库 ※ 使用带 -l 选项的gcc命令,后面跟库文件名 ※ 库文件名在字符串lib后,扩展名之前 ※ 必须为每个需要链接的库使用单独的 –l 选项 ※ 有时候我们需要明确地把需要链接的库告诉编译程序 [root$xmu root]# cat power.c #include math.h main() { float x,y; scanf(“%f”,x); scanf(“%f”,y); printf(“x^y is:%6.3f\n”,pow((double)x, (double)y)); } [root$xmu root]# gcc -o power power.c -lm ※举例 math库的名称为libm.a 多模块软件的编译和链接 ◆多数软件被分割为多个源文件,每个文件称为一个模块 ※ 允许只重新编译经过修改的源代码 ※ 必须知道构成整个系统的所有文件和依赖关系 ※ 为了生成一个可执行文件需要创建目标文件和可执行文件 ※ 使用SHELL脚本创建所有的目标文件 ◆make实用程序 ※ 管理多模块程序的编译和链接,并生成可执行代码 ※自动判断源码中哪些部分有更新,重新编译这些文件并重新链接 ※ make实用程序读取一个说明文件makefile,它描述了软件系统的模块是如何互相依赖的。 ※ 语法 make [选项] [目标] [宏定义] ※ 常用选项 不运行任何makefile命令,只是显示它们 –n 显示所有选项的简要说明 –h Make实用程序从“文件”中读取内部依赖

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档