| 小虎妞's profile小虎妞的温暖小窝PhotosBlogLists | Help |
|
|
April 06 这几天对编译链接的一点体会下午五点多,终于按照我的理解完成任务了,赶在天黑前的最后一刻跳上了44路,阿菜早上说,清明要早点回来哦,呵呵,不大知道为什么有此一说,但总归也算不负所望...
晚上到309转了一圈,很eager的问每个人毕设都作什么,觉得自己做得东西实在是没什么技术含量,想了解下大家都做啥,学习学习,虽然脸上只剩崇拜的表情了,但不能参加讨论不等于我连能够旁听的权力和听的懂的能力一并放弃掉...
虽然觉得事情很没技术含量,但是烦了两天总归有点可以叫做心得体会的东西吧,写下来当工作总结吧。
不知道这只是我个人的情况还是大家都这样,觉得好像以前从来没想过build和link有多大区别和联系,尤其这个link,到底是做什么的都不甚了了,终于有一天,我就要跟link干上了。以前就觉得link就是把一堆.o(.obj)文件链成一个可执行文件,怎么链的?依据是什么?没想过,ms也没必要想,反正没遇到过编译通过了链接报错的事(遇到过也是重建工程...不求甚解)。有这么几点体会吧,呵呵,是根据编译和链接现象和问题猜出来的,觉得应该是猜的基本正确...
1 .h文件就是告诉你有哪些函数可以用的。如果一个源文件include的.h文件里定义了某个函数,那么你在程序里怎么用都没关系,就算这个函数没有被实现,编译时也不会出错。
2. 链接当然就是把一堆.o文件连成个可执行文件。怎么链?根据在.h文件里定义的那堆标识符吧,找到标识符就找到地址了吧...嗯,偶遇到的问题就是这个破事造成的...偶要把两个很相似的部分链接在一个可执行程序里,有大量的函数名和全局变量名是重复的,然而有一些可能功能上是不同的。怎么办呢...如果把所有名称都改一遍估计我现在还在加班,而且把n万行程序里的标识符不管三七二十一改一遍能不改乱套的可能性也挺小的...所以偶就把他们分别编成了两个库文件,这样子就只有外部程序和库文件的接口会有冲突啦,要改的程序就少多了...还是很无聊的repleace(用editor半自动替换的,不敢用sed,生怕把不该换得也换了在回头找错误就死的更难看了), gcc -c, .o....o...a...-o了一整天...
发现自己怎么一点都说不清楚啊,看来自己也还是没搞清楚呢...反正最后总归把4个.cpp文件4个用g++编译的.c文件和n十个用gcc编译好的.o文件链接成一个可以跑得程序了...有那么一阵子我是很有成就感的,然后就终于发现了自己的无知...算了不说了... March 23 实验室停电提早放假,总结下工作周末旅行,啦啦啦下午四点多,实在不想做事,上午刚开完会,交待了前面的工作,接到了下面的任务,打算好了明天翘“课”跟小猪去宜兴玩,剩下这半天时间做事也做不了啥,下周回来也是忘光光,不做吧,也没别的事做,又不好意思早走...然后老天大约体会到了我的痛苦,只听一声巨响,楼微微的颤了一下,嘿嘿,停电了...提前放假咯,耶~~走的时候还看到校长了,同学说是那个戴眼镜的,偶说两个都带眼镜啊,然后校长大人看了我一眼...心想这下完了,转念一想,好像没我啥事,人家是校长,估计以后没啥打交道的机会...
不多说废话了,总结下工作吧,然后好开开心心赏自己个weekend,啦啦啦...
其实上两个礼拜没做多少事,只是任务太简单,然后又被俺私自偷换概念搞得更简单了...
嗯第一天干了啥都不记得了,反正第二天开始发烧就没去,然后一周就废了,周末装了个Linux,被折腾到几近崩溃的同时把系统折腾的确实崩溃了好几次...虽然做的事情跟推进工作进度没啥直接关系,不过在遇到问题和解决问题的过程中还是学到了很多东西,至少再给我看几千个warning和error我也不会panic了,嘿嘿,兵来将挡,水来土掩,啦啦啦,who怕who啊
然后就是完成任务咯,嗯学长说要控制SS单步执行,偶脑袋里闪过的第一个歪念头就是用人家自带的轻量级DEBUG,看看原码,搞明白参数是怎么传的,把命令行的控制改成读文件了,嘿嘿,外面套了个main就搞定...一共不到20行代码...不过过程中还是发现自己的C语言功底很应该受到鄙视,关于编译和链接的知识基本就可以被无视了。二几指针搞得我基本头晕了,到现在都不会写makefile只能每次借用SS的makefile来make,再把得到的.o文件跟自己的程序.o文件链接...嗯,链接指令还是从人家的makefile里依样画葫芦画出来的...这个丢人就不多说了...
再说说今天开会吧。偶讲了下做滴啥,老师ms还基本满意,说能做到这样挺不错...不知道是不是因为现在的本科生都太水了以至于老师们都如此容易满足,嘿嘿...然后学长讲了些MADL还有NOS的东西,ms跟我们在做的部分一点关系都没有,嗯,其实确实是没有,学长和学姐以及十几个本科研究生都在搞MADL,扔我们两个小本来做SS和systemc,呵呵,老师还拽上一句他们俩就能manage了,感到受宠若惊,然后也有点小怕,真的能manage吗?另外一个哥们我是不敢指望了,学长们又都不做这一块(做我也不敢问...嗯,要你来是来解决问题的,不是来提出问题的,嘿嘿,这应该是所有boss想对员工说的话,偶不想被炒...),小羡慕下洋洋了,呵呵,洋洋昨天来参观了下偶滴工作也说你好辛苦哦...其实辛苦是没有的,在实验室里也常聊天,回寝室天天看片,晚睡已经成了习惯了而已...痛苦倒是真的,每次下决心干点活都要鼓起十二分遭受打击的勇气,尤其是在寝室,这个GCC4.0整天一副折磨不死我不罢休的样子...
再说说下两个礼拜的任务吧,嗯,实现两个SS的时钟同步。ms可以分解成下面几个步骤:
1. 把sim-arm的核装上去,跑下test和benchmark看看好不好使
2. 把sim-arm移植到祝老师写的程序里
3. 实现时钟级同步
嗯,旅游回来后再头痛怎么实现吧,先想怎么玩了,啦啦啦 March 01 我的GRE冲刺桌面不知道触动了哪根神经,忽然想起了自己GRE最后十几天的桌面,找了找还在,再一次把它设成桌面,盯着屏幕,我被自己感动了...忽然感觉到久违的压力,就像当时吧...突然发现很多人问我GRE我的回答都是很不负责任的...也许它确实不是对智力的挑战,但绝对是对毅力和体力的考验,呵呵...
怎么现在都没有了那时的激情了呢,变得这么懒...懒得动,懒得思考... February 23 毕设第一天,做个有心人昨晚收到家园学长的短信,说今天上午十点去找他,还以为去去就回呢,所以早饭都没怎么吃,结果正儿八经待了一天,晚上8点过才到寝室。
早上迟到了,路上塞车塞的好夸张,想不通为什么又不是周末,又不是上班时间,也塞这么厉害...然后被学长带到教三楼的微电EDA实验室,说要装啥SystemC和simplescalar,上午就考东西了,呵呵,这实验室保密措施还真够牛的,连USB都不让用...
中午蹭了学长一顿饭,下午学姐演示了一下怎么装systemc,然后让我们自己搞定simplescalar,所以我们下午的任务就是安装这两个不知道是啥的东西。学姐已经告诉了记录systemc的安装步骤的文档在哪,照着一步一步做每遇到啥问题,很快就搞定了,然后就该这个完全没概念的simplescalar了(systemc好歹看名字还大概知道是啥...)。
学姐考了好几个版本的simplescalar,然后simplescalar suite里还包括其他文件,看晕了,有点傻。好在曾经装过globus,而且linux课再白痴至少常用命令还是记得的。慢慢的回忆起了一些东西,照着n多版本的安装说明,开始乱装。遇到些问题,然后就分析,然后就猜,后来终于可以上网,可以查查。四点多partner走了,留我一个人对这些个想不明白的问题拍脑袋。不想走,走了晚上肯定睡不好觉。觉得还是一个人做事效率比较高,呵呵,没人跟自己说话了。六点半,饿得头晕眼花的时候,终于ms搞定了,开开心心的走人,hoho~~
linux上装东西很有意思,总会出些不知道哪来的错误。以前都觉得自己在网格实验室待了一阵子什么也没做什么也没学到,很是废,忽然发现,其实还是有所得的。如果当初没装globus,今天自己一定跟partner一起杀在那不知道该干啥了呢。虽然当初也搞不明白自己在干什么,照着说明一步一步敲命令,总归还是对linux的文件组织格式和软件安装方法有点印象,呵呵。做个有心人,总能学到东西的:) January 05 围着论文转很知趣的把闹钟拨到九点半,却还是又睡过去了,直睡到十一点。
下午被电脑欺负,浏览器的不干活,只有MSN和QQ能用,已经第N次了,明摆着只准聊天不准干活嘛!真的,我的忍耐是有限度的,你再不好好表现我真把你格了...
盼着我认识的零星几个交大学长可以上线被我抓来帮忙下论文,好像大家都有预感,躲着就是不上线...已经有点怕问微电的学长了,Bill学长说过他们实验室曾经有人因为问题多多被轰走了,生怕自己也被扫地出门...
晚上终于逮到Bill学长,文章搜来一看,一半不相关的。现在ARM和DSP这么热,麻烦行行好多写几篇paper给我抄抄行不啊?!学长说是因为现有的检索方法不好,搞半天他正在做啥查寻扩展方面的研究,听着好玩就多问了几句(汗,最近怎么成问题大王了),嗯就等着盼着早日成功像我这样的受苦受难的小孩就有救了... |
|
|