培训资料:Linux编程知识.pptVIP

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Make 通过obj-y,得到需要编译的所有.c文件,在Cavium上是分散在kernel各子目录下的Makefile文件中 -include $(obj-y:.c=.d)首先把各个文件的后缀由.c变成.d,再include进来;前面加-,表示即使文件不存在,也不报错退出 .PHONY: all all: ; 摆设而已,Make总需要一个target来执行 Make %.d: %.c -rm $@ $(CC) -M $(CPPFLAGS) $ $@.$$$$ sed s,\($*\)\.o[ :]*,\1.o $@ : ,g $@.$$$$ $@ -rm $@.$$$$ 告诉Make,这是一个自定义的静态规则模式,.d文件如何从.c文件推导出来,并且通过sed命令把gcc –M生成的xxx.c : xxx.h ...改成 xxx.o xxx.d : xxx.h ... Make sed s,\($*\)\.o[ :]*,\1.o $@ : ,g $@.$$$$ $@ $@.$$$$:文件$@.$$$$作为sed的输入 $@:输出重定向到$@文件 s:s/pattern/replacement,s后面的第一个字符作为分隔符 pattern:\($*\)\.o[ :]*,:\(、\)成对括起来的字符,在replacement里可以用\1、\2来引用 \.0:\作转字字符用,.正常为正规则表达式里的任意字符,相当于ls里的?,这里\.0相当于正常的.o [ :]*:[ :]任意匹配空格或者冒号,*表示一次或多次 \1.o $@:\1引用前面\(、\)括起来的$* $*:target里%所表示的部分 ,g:匹配、替换一次后,接着找下一行去匹配、替换 Make .d文件被更新后,会被重新include进来 于是这个Makefile里,就存在各个.o文件的依赖关系 再通过.o文件的内建规则,于是会自动gcc一把.c文件 于是每次运行,Make就会自动更新.d文件、自动去查找哪些.o文件需要重新编译 Make 功能强大,平时可以多试着写写,自然能够慢慢掌握 end thanks! * * * * * * * * * * * * * 内部资料,注意必威体育官网网址 谢 谢 ! 菲菱科思内部资料,注意必威体育官网网址 菲菱科思内部资料,注意必威体育官网网址 Linux编程知识 主要内容 Linux编程的风格及与COMWARE的比较 Linux程序的常见概念 Linux Make的使用 Linux编程的风格 变量类型:Linux的更直观:u_int32_t VS ULONG 变量命名:Linux采用全小写,简短,但对英语要求较高COMWARE;采用的是匈牙利命名法,容易理解,但长度较长 控制块{}的使用:COMWARE是强制要求if、else等后面必须有{},不容易出错;而Linux是能不用则不用,且尽量多容纳有效行 函数返回值:功能性的函数,Linux一般是0返回正确,小于0的是出错;COMWARE是VOS_OK正确,VOS_ERR错误 常数的使用:Linux使用常数的地方较多,需联系上下文才能看懂;COMWARE是提倡用有意义的宏来代替,能够顾名思义 ... Linux用的是必威体育精装版gcc编译器,支持C99,可变宏、更多的关键字,等等,编码更灵活;COMWARE仅支持ANSI C89 总之,Linux是天才们的编码,更追求技术;COMWARE是普通人的编码,更追求稳定 Linux程序的常见概念(一) 进程:亦可称为任务。Linux下的进程互不影响,各自使用独立的空间,由CPU、OS共同负责内存保护、任务切换;COMWARE使用相同的地址空间,能够互相访问,因此也会发生踩内存的现象。 COMWARE下启动任务是VOS_T_Create函数,通常是任务A调用该函数来启动B,两者代码通常不相同。 Linux是fork函数来启动子进程。通常返回值PID来区分: 1、返回值是0,则是子进程,子进程可以通过getpid来获取自身PID 2、返回值是-1,表明创建任务出错 3、其它,则是父进程,并得到了子进程的PID Linux程序的常见概念(一) fork代码常见形式: ... if ( (pid = fork()) == 0 ) { /* Child process */ } else if (pid == -1) { /* Error Handler */ } else { /* Parent process */ } ... Linu

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档