- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
培训资料:Linux编程知识概要
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
您可能关注的文档
- 一轮复习配套讲义:第9篇第2讲用样本估计总体讲述.doc
- 培训授课技巧概要.ppt
- 培训师技巧概要.ppt
- 一轮复习课件:3-4-1第一讲区域农业发展——以我国东北地区为例(知识梳理+提能优化,30ppt)讲述.ppt
- 一轮复习:流域的综合开发讲述.ppt
- 一高炉停炉安全方案MicrosoftWord文档讲述.doc
- 一轮复习政治生活课件:第六课讲述.ppt
- 丁5-32080风巷与切眼交岔点措施讲述.doc
- 丁张华论文正文讲述.doc
- 丁素华四年级上册劳技教案讲述.docx
- 2025年度黑龙江省气象部门高校毕业生招聘45人(第二批次)笔试备考题库及答案解析.docx
- 2025年山东管理学院公开招聘工作人员(80人)笔试备考题库及答案解析.docx
- 长兴城投笔试.pdf
- 2025湖南长沙市南雅星沙实验中学教师招聘笔试备考试题及答案解析.docx
- 血气分析血糖升高.docx
- 2025北京理工大学附属中学教师招聘笔试备考试题及答案解析.docx
- 2025广东广州市教育局直属事业单位广东广雅中学第一次招聘教职工17人笔试备考试题及答案解析.docx
- 2025宁波象山影视城文化产业集团有限公司第一期招聘3人笔试备考题库及答案解析.docx
- 血气分析血钾比静脉高.docx
- 血气分析血钾与静脉血钾.docx
文档评论(0)