第一篇:linux makefile 初学者学习心得
在学习linux系统中认识到了makefile是必须要掌握的,一开始对于makefile(翻译:生成文件)不理解,经过几天的学习对makefile也有了一定的理解:
一、Makefile的作用:
makefile 关系到整个工程的编译规则,一个工程文件不计其数,其按类型,功能,模块分别放在不同的目录下,makefile定义了一些规则来指定,哪些文件需要先编译,哪些文件需要重新编译,甚至进行更复杂的功能操作,因为makefile就像一个shell脚本一样,其中也可以执行操作系统命令。也就是通过makefile规则编写makefile文件来实现执行文件的生成,makefile对于多个文件生成的执行文件,若有某个发生改变后,makefile可以发现直接去编译,从而减少了从头开始编译的时间,提高编译效率,同时也可以很方便的修改文件,添加或者删去某些文件。
二、Makefile的规则:
1.隐晦规则:就是利用make 的 自动推导的功能
2.显示规则:就是显示的在命令行中写出目标文件的依赖关系 3.变量的定义:就变量的宏替换
4.文件指示:其中包括三部分的内容,一个是在一个makefile中引用另一个makefile,就像c语言中的include 一样;另一个是根据某些情况指定makefile中的有效部分,就像c语言的预编译#ifdef一样;还有一个就是定义一个多行的命令。
5.注释:只有行注释用#号字符注释 如果你的makefile中用到了# 你可以用“#“转义
一、把源代码编译成目标代码一般是一个规则。
二、把所有中间文件编译链接在一起也是一个规则。
编译需要一定的依赖文件,例如把一个.c文件编译为一个可执行文件,则一般是通过:先有.c再到.o然后到
执行文件 例子:#要想生成hello.o目标,必须先有hello.c, 然后调用命令行gcc编译生成hello.o 依赖对象hello.c hello.o:hello.c
gcc –c hello.c –o hello.o
要想生成执行程序hello,必须先执行规则hello.o, 然后调用命令行gcc链接生成hello hello:hello.o
gcc hello.o –o hello 在例子中hello.o要依赖hello.c调用gcc编译器才能生成,执行文件hello要依赖hello.o
Makefile可以理解为由make程序进行解释的一种特殊脚本。
(备注:脚本通常可以由应用程序临时调用并执行。各类脚本被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。举个最常见的例子,当点击网页上的Email地址时能自动调用Outlook Express或Foxmail这类邮箱软件,就是通过脚本功能来实现的)
首先make找到Makefile的入口规则,一般是all,或者是用户在命令行指定的target 顺着入口规则的依赖对象查找下去,检查一直查找到最终的目标,即只有被依赖而没有依赖其它对象的目标.即终目标
从最终目标顺着依赖关系依次执行到入口规则,中间只有运行命令出错,才停止执行.如果是依赖文件,make会自动检测最后更新时间,只会去执行已经修改过的文件,以此来减少编译时间
三、在makefile也可以定义变量。
如赋值:定义变量可在规则中使用,Makefile 中使用变量 Makefile中的变量就像是c 语言的中宏一样 怎样定义变量呢?
我们在makefile最上面定义 一个变量
OBJS = main.o func1.o func2.o func3.o func4.o func5.o 引用变量 $(OBJS)这就等价于main.o func1.o func2.o func3.o func4.o func5.o 就像宏一样的会被替换掉,等价后如果一个生成文件需要依赖main.o func1.o func2.o func3.o func4.o func5.o多个.o文件,则可用$(OBJS)代替。
Makefile还有自推导,判断源代码的依赖关系的功能,也就是不用我们去为了.o文件而编写其他命令,例如:只要make看到一个*.o文件,它就会自动的把 *.c文件 加到 依赖关系中,如果make 找到一个 func2.o 那么func2.c 就会使func2.o 的依赖文件。并且gcc –c func2.c 也会被推导出来。所以我们的makefile就会简单多了
在编写makefile是也有很多小细节值得注意,最为重要的一点就是命开头的空格是用tab键生成的,命令间空格也是tab键生成,还有赋值方式
= 和 :=
许多换行等许多应用需要注意,makefile的功能
很是强大,上述只是简单操作入门。
第二篇:java初学者学习心得
学习Java心得体会
学习了一学期的Java课程,觉得是该总结自己的心得体会了。开始学习任何一门课(包括java),兴趣最重要。一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分,对它们的精华部分知之甚少,于是趁学校开设这门课,并且有自己的老师讲解,还有了上机的机会,比自己自学省事多了,于是鼓足信心,开始了漫长的java征途。
还记得我编写的第一个经典程序“hello Word”。从那时起我已开始走进Java的世界。当时自己不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?问了好多同学,他们告诉我的答案是一样的“java本身要求就是这样子的”,但我自己不甘心,就进行了下面的好多操作:把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。结果把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这样定义的了。接着在以后的学习中我也采用这样的方法解决问题,却发现自己的速度比别人慢了好多,我就把自己的课余时间也分一部分给了java。因为基础是最重要的,只有基础牢固才有可能对后面的学习有更加深刻的认识!
学习一门新的语言,参考书是离不开的。听老师说订的教材偏难,不适合我们初学者,于是我在图书馆借了参考书(一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等)。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。
在学习Java的语法时,Java的语法是类似c语言的,所以学习的比较轻松。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,和同学一起讨论了好久才得以解决。
在学习Java的面向对象的编程语言的特性。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C语言的经验,花了很长时间,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了很多遍,才彻底领悟了。
开始熟悉Java的类库。基础类库里面的类非常非常多。据说有3000多个。但是我真正使用的只有几个,比如说 java.io.*;java.util.*;java.sql.*;等。此外,我对于static,public,private,Exception,try{ },catch { },finally{ }等等一开始都不是很懂,都是把书上面的例子运行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程序,看看能不能运行,运行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。
在学习Java的过程中我得出这样的结论:
1.学习中,要养成良好的习惯(写括号时要成对,字母大小写要区分,单词拼写要准确)。
2.在学习的过程中,最好不是仅仅停留在java表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
3.在学习的过程中一定要动手做、试着写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己。4.在 Java 的学习过程中,可能会遇到形形色色的问题不容易解决,应多去专业论坛了解相关的知识,书本上的知识有限。要会从网上搜索有用的信息 加以整理,促进学习的深入和知识水平的提高。
看了好多网上课程,说学到一定程度要尝试着自己做东西,但觉得自己仅仅经过一学期的学习,还远远不够,希望自己在以后学习中继续努力,能够真真正正拥有一门编程语言,对自己今后的发展起到作用。在学习java语言的同时,也让我学会了如何来发现问题,如何解决问题,怎样有效的学习等等,相信会对我一生都有帮助。
第三篇:plc学习心得,初学者必看
1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想 出来再参考别人的提示,你就知道自己和别人思路的差异。
2.别小家子气,买本书几十块都舍不得,你还学个P。为了省钱看电子书,浪费的时间绝对超过书的价值。当然如果查资料,只能看PDF。
3.学习新的开发软件时,一定要看帮助手册。买的书不够全面。刚接触一个软件,什么都不懂,就盲目的问东问西,让人看起来很幼稚。
4.不要蜻蜓点水,得过且过,细微之处往往体现实力。
5.把时髦的技术挂在嘴边,还不如把过时的技术记在心里。
6.看得懂的书,请仔细看;看不懂的书,请硬着头皮看。别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍。
7.多实践,调试,去写去调,只用软件模拟,是永远成不了高手的。
8.保存好你做过的所有的源程序、原理图等----那是你最好的积累之一。
9.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先你要学会自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就 能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己的帖子没人回的。
引用 回复 举报 评分
什么样的人是浮躁的人
浮躁的人容易问:谁有xxx程序吗?--(你给人家多少钱啊?自己的劳动白送你?)浮躁的人容易说:【男儿膝下有黄金】xxx ---(就算网络也要点尊严吧?)浮躁的人容易说:紧急求救---(其实只是个简单的课程设计)
浮躁的人容易说:有没有xxx中文资料?---一个字:懒。别说别的。E文不行?谁不是从 ABC学起的啊?
浮躁的人容易说:求xxx,我的email是xxx@xxx.com,然后消失 ---- 你以为你是大爷啊,人 家请你吃饭,还要喂到你口里不成?
浮躁的人容易问:做PLC有钱途吗----只是为了钱,搞不好技术的,你去抢银行好了。浮躁的人容易说:哪里有xxx资料?(其实大部分资料网络上都有,但是偏偏来找人 问,懒!)浮躁的人分两种:只观望而不学的人;只学而不坚持的人; 浮躁的人永远不是一个高手。
第四篇:建筑电气初学者学习心得
1保护接地线绝对不能与零线共用 2接地电阻测试必须符合要求 3保护接地不可以代替保护接零
4工作接地:在TT或TN系统中,将变压器中性点直接接地,接地电阻小于4欧姆;作用:稳定系统电压,防止高压侧电源直流窜入低压侧,避免低压侧系统的电气设备损坏。
5重复接地:保护零线断线后的补充保护作用,接地电阻小于10欧姆,降低漏电设备的对地电阻,缩短故障持续时间;重复接地的设置不少于3处,供电线路的始端、中端和末端或设备集中和高大设备处多做一组。
6保护接地:电气设备的金属外壳与大地相连,接地电阻小于4欧姆;作用:保护人体接触漏电电气时的安全。
7保护接零:电气设备的金属外壳与电网的零线连接(在TN系统中,与专用保护零线相连接);原理:将电气设备的碰壳故障改变成单相短路故障,由于单相短路电流很大,所以能迅速切断保险或自动负荷开关跳闸,使设备与电源脱离。
8同一系统中,保护接地与保护接零不能混用,这样会造成:采用保护接地的碰壳设备外壳带有110V危险电压,在线路保护装置未动作的情况下,设备外壳长时间带点。9
第五篇:作为室内设计初学者的学习心得
设计,不是一早一夕的热情,而是日积月累的积淀和设计师本人的文化底蕴所系。还是那句话,没有失败的行业,只有失败的人。有付出就一定会有回报。设计师要做的不仅仅是做出好的效果图,还要能够设计出领导时代潮流的功能和全身心的为业主所考虑的周全方案。那么,学习室内设计从哪里开始呢?
在这里我把我之前在邦元学室内设计的心得跟大家分享一下:
1、一定要先会熟练使用设计软件,因为你的意图需要软件来表达出来。我常常看到很多的初学者连基本软件都操作不熟练就去谈什么风格,很可笑。
2、你应该要学习室内装修这一行业的专业知识,知道这个东西或者造型的大致结构和施工原理。有的设计师画出了漂亮的图纸,拿到工地去,却实现不了,自已的心血花的没有意义,还让工人们笑话。
3、当你达到以上二点了,然后你就要用包容的心态多去学习。书上的、别人做的,汲取人家的长处。设计师在设计一个作品的同时,也是在把自已的生活态度、生活体验传达给客户的一个过程。因此,设计师必须要有不同场景的体验。例如你没去过星级酒店让你去做一个星级酒店的图纸,那是白扯。做设计的人常常在一个阶段,自我意识膨胀的很厉害,看了别人的东西,全是毛病,这样不好。不断的学习,才能越做越好。
4、好的设计师一定是一个沟通高手。他把自已的作品交给客户时,他也在传达自已的生活价值。如果你设计出来一个好东西,但你无法用语言来说服或表达给客户听,客户云里雾里的最后不采纳,那也太悲摧了。