欢迎访问goflyfreely的博客,希望你在这里得到些许快乐!
编译原理学习导论
| 编译原理学习导论 steveno 发表于 2005-8-13 10:13:00 | |
|
- 作者: goflyfreely 2005年11月6日, 星期日 21:58 回复(4) | 引用(1) 加入博采
Eclipse的linux安装
我用的环境是 Redhat Linux 9 (自编译Gnome2.4)
一.下载所需软件(所有下载的软件均放在/opt下)
先下载Eclipse,网址为http://www.eclipse.org,目前,Eclipse的最新版本為2.1.1,3.0版也正在测试中。我使用eclipse2.1;下载其gtk版本:eclipse-SDK-2.1.1-linux-gtk.zip
执行 Eclipse是须用到JDK,但Eclipse的安装程序和Red Hat Linux 9 里没有包含JDK,Sun 最新版本的 JDK可到http://java.sun.com下载,在此我们使用的是Sun jdk(J2SE) 1.4.2_01版(也可使用IBM的jdk)。
要在Eclipse 上面开发C/C++程序,需要另外安装plug-ins,在此我们使用的是C/C++ Development Tools(CDT)。CDT 整合了gcc、make、gdb等GUN 工具,(CDT 与Eclipse 中内建的JDT(Java 开发环境)比起来,功能还差得远。例如,在JDT 中相当好用的Refactor、Refactoring、Organize Imports等在CDT中都没有。)CDT 可从http://www.eclipse.org/cdt/ 下载,目前最新版本为CDT 1.1 GA2 .
二.安装
1.由于CDT需要gcc等工具,所以要先把Redhat9的软件开发包装上。
2.安装JDK(需以root身份安装):
[root@redarmy] chmod +x j2sdk-1_4_2_01-linux-i586-rpm.bin
[root@redarmy] ./j2sdk-1_4_2_01-linux-i586-rpm.bin
[root@redarmy] rpm –ivh j2sdk-1_4_2_01-linux-i586-rpm.bin
安装好的JDK 会存在 /usr/java/j2sdk1.4.2_01 目录中。设定JAVA_HOME,CLASSPATH,PATH; 在/etc/profile文件最后加如下四行:
export JAVA_HOME = /usr/java/j2sdk1.4.2_01
export PATH = $JAVA_HOME/bin:$PATH
CLASSPATH=.:/usr/java/j2sdk1.4.2_01/lib/tools.jar:$CLASSPATH
export CLASSPATH
3.安裝Eclipse
在此我把Eclipse安装在/opt下,安装Eclipse很简单,只要把下载回来的压缩包解压就可以了;解压后得到Eclipse目录;
[root@redarmy] unzip –d /opt eclipse-SDK-2.1.1-linux-gtk.zip
为让每一个帐号都可以执行Eclipse,我写了个小脚本(Eclipse.sh):
#!/bin/bash
#
# 执行 eclipse 2.1.1
#
export JAVA_HOME=/usr/java/j2sdk1.4.2_01
export CLASSPATH=/usr/java/j2sdk1.4.2_01/lib
/opt/eclipse/eclipse -vm /usr/java/j2sdk1.4.2_01/bin/java -data ~/workspace &
# -vm 参数用以指定使用哪一个 jvm 来执行Eclipse,
# -date参数用以指定Eclipse的数据目录。在此指定其存在用户根目录(~)下的workspace目录中
将eclipse.sh 复制到/usr/local/bin中,并为它加上权限755;现在执行 eclipse.sh 即可启动 Eclipse。
[root@redarmy] cp eclipse.sh /usr/local/bin
[root@redarmy] chmod 755 /usr/local/bin/eclipse.sh
将Eclipse添加到桌面。首先,在桌面上按下鼠标右键,在弹出菜单中选择“新增启动”,之后分別在“名称”中输入Eclipse、“命令”中填/usr/local/bin/eclipse.sh,然后再为它随便找个喜欢的图标(我用的是/opt/eclipse/icon.xpm);再后按“确定”,桌面上就有eclipse的快捷方式了,以后可以直接双击这个图标启动Eclipse。
Eclipse 安装好后,已经内建了java开发环境(JDT)就可以直接开发Java 程序。
4.安装CDT,CDT 1.1 GA 目前只支持Eclipse 2.1 版。
将下载的包解压,会得到features 和plugins 这两个目录
[root@redarmy] unzip –d /opt org.eclipse.cdt-linux.gtk_1.1.0.bin.dist.zip
分别将这两个目录中的所有文件分别剪到/opt/eclipse下的对应目录里,即可。(Eclipse的插件安裝方法几乎都这样安装: 把文件下载后, 直接解到Eclipse所安装的目录中对应的features 和plugins 中即可。)
三.程序实例
这没多少好说的,对C、C++开发,都是先写源程序,再写个makefile。
四:附
要是不习惯,Eclipse英文环境,可以在Eclipse.org的主站上下,它的语言包;装了语言包后,不光菜单成中文了,它的帮助文档也成中文了。
- 作者: goflyfreely 2005年10月24日, 星期一 11:41 回复(0) | 引用(1) 加入博采
linux编译内核的文章(转载:深刻感谢写此文的人)
不要急,应为要先确认7.1步的工作的正确性,以免把7.1错误
)- 作者: goflyfreely 2005年10月22日, 星期六 11:58 回复(0) | 引用(1) 加入博采
VC初学者的经典错误LNK2001详解
- 作者: goflyfreely 2005年09月11日, 星期日 18:20 回复(0) | 引用(1) 加入博采
关于宏的一些理解
宏其实和内联函数有点像,但宏不仅可以是函数也可以是一些变量.它们在头文件里定义然后在编译的时候替换调引用的宏.宏和函数相比,用宏的代码在编译后会变得大一些,但是执行起来比较快一点.函数呢虽然不会让代码变大,但是每次执行都要载入所以执行起来比较慢一些.
在定义宏的时候千万要注意空格的使用,因为很可能在替换宏的时候会把你不经意打的空格当作宏的一部分替换进去.所以不要在宏及其参数之间键入空格.
注意,作为规则一定要将宏参数放到括号内.宏和函数的另一个区别是,宏是没有类型的,然而函数都是有类型的.
#include
头文件放在左右尖括号当中<>,C编译气将首先在它自己的头文件子目录当中搜索指定文件.如果没找到它就搜索当前子目录或用户指定的子目录.当用户把头文件放在双引号当中的时候,编译器仅搜索当前子目录.
'A'表示字符,"A"表示字符串后面有个NULL,也就是\0.
- 作者: goflyfreely 2005年09月9日, 星期五 21:53 回复(0) | 引用(1) 加入博采
printf的用法
以前开始学编程就学的C啊,对C的库函数一点都不了解啊!一天就晓得用cout>>在哪里打印字符啊!今天看了C中printf的用法,果然很强大啊!!!!!!!!!
printf()可以有多个参数,但第一个参数必须为字符串.可以在第一个字符串中加入一些标识符标记要输其它参数的位置和类型.比如:
printf("The user is %d years old.\n",age);
其中%d就标识了参数age要显示的位置和类型.当然也可以是多个参数哈.
printf("user info:age :%d :weight %d; height %d.\n",age,weight,height);
这里后面的参数就有顺序了哈,自己要把握了.这里%d是标识整型变量的,下面我要介绍其它类型变量当如何标识.
用%o(是字母o不是零哈)来标识八进制数,用%x和%X来标识十六进制数.x表示后面的十六进制中的X用小写,想法大写后面就是大写咯.用%u来标识无符号整型变量.用%ld来标识长整型值.用%f标识浮点数值.
用%c来标识字符型数值.这里要举两个例子
printf("The letter is %c \n",'A');
printf("The letter id %c\n",65);
上面两个例子都打印字母A.
用指数格式显示浮点数:
用%e或%E标识符.他们的区别也是大小写的问题如:1.2566e+01和1.2588E.
用%s标识符显示一个字符串.用%p标识符显示一个指针所指向向的内存地址.
如果要在数值前面加上符号,可以在%后添加一个符号.如%+d.
在%后加数字表示至少要显示的位数.如%3d,不够的用空格填充.如用前面的标识符来显示11则显示出来的效果是空格+11.当然前面填充的不一定就是空格哈.也可以用数字0来填充.%03d.显示11的时候就是011了.
用%#来要求显示前缀,比如说十六进制的0X.
当然还有其它一些规则,很多啊.
- 作者: goflyfreely 2005年09月9日, 星期五 21:00 回复(3) | 引用(1) 加入博采
C语言中的变量类型
最近重新开始学C语言了,以前觉得C++,JAVA很好啊.现在才知道了解底层的东西也是相当重要啊.醒悟了!现在开始学C!希望通过博客的方式一方面总结自己,另一方面能和各个地方的朋友们交流一下.哈哈!
C语言的变量有三种类型:char,int,float,double
其中char为字符类型的变量是八位的,最前一位作为符号位,后面七位作为数据位.它的存储范围在-128到127之间.
int整数类型的变量是16位的,最前一位为符号位,后面的15位作为数据位.它的存储范围在-215到215-1.也就是-32768到32767.它不包扩小数点以后的数,在一般编译器中给Int类型赋予带有小数的数.编译器会自动去掉小数点后面的数保留整数部分.
float为浮点数类型.首先要说明的是浮点数有两部分组成,第一部分是指数,也就是多少次幂嘛.第二部分是由尾数组成也就是一个数科学表示发之后除去幂那部分剩下的(呵呵!!!)如1.33333.那么C中的浮点数就有三部分.32位的浮点数第一位就是第一部分它决定数的符号.第二部分是八位的指数.第三部分是23位的尾数.所以浮点数具有6到7位的存储精确度.范围为3.4E-38到3.4E+38的数值.注:3.1415926E+7表示3.1415926.0.在给浮点数赋值的时候可以采用如下方法.123.45和1.2345E2是等价的.
double为双精度型变量.C编译器通常用64位来存储双精度性变量.它的精确度能够达到14到15位.64位中第一位是符号位.后面的11位是指数位.最后的52位是尾数.它的范围是-1.7E-308到1.7E+308.
类型标识符:unsigned,short,register,long和signed.
其中unsigned提示编译器不要保留符号位,这样可以扩大数据类型正数的范围.比如unsigned int的范围就变位0到65535了.
short类型用在有的编译器不能给太大的存储范围,需要给一个比较低的溢出界限.比如有的编译器就用的是32位来存储Int类型.用short来标识它可以保证int是用16位来标识的.
register表示一个变量可能会用得很频繁.需要很快得存取速度所以指定的把它存到寄存器当中.
long表示不希望用16位来存储整形变量时可以用long指定它用32位来存储可以得到更大得表示范围.
当然还有long unsigned int 这样得类型.
用户自定义数据类型
用户可以使用typedef来自己定义自己需要得数据类型.如下例:
typedef unsigned long int MYINT;
MYINT num1;
这样num1就是unsigned long int类型的了.
- 作者: goflyfreely 2005年09月3日, 星期六 11:31 回复(0) | 引用(1) 加入博采
竟然被卖!!
- 作者: goflyfreely 2005年06月2日, 星期四 23:31 回复(1) | 引用(1) 加入博采
长安乱中的一段话(幽默源至自然啊)
那人往下讲:后来,到了过沙,听说一个事情,厉害啊,原来,杀少林的是其它各大仇视帮派派出的高手,其中包括大漠第一腿的张富雄,武当暗器第一的牛三娃,金牛号称第一大力士的潭壮壮,等等等等好手,数都数不清,他们在酒楼里喝酒吹牛,结果一个少年,带了一把剑,那人不是人啊,是神。把少林灭了,触动了佛祖,佛祖派了身边一个点灯的下来,神兵天降啊,他们在二楼喝酒,那人不是从一楼上来的,是直接从天上降到二楼顶上,挖了个洞就下来了。
众人哗然。
那人说:那四十人当然不知道,说要打,那人都没动手,那四十个人就全死了。
众人不信:胡说,不动手怎么杀人啊。
那人说:笨蛋,动剑啊,不是说那人带了把剑吗?那剑是天上用来斩地削山用的,你看那太行山,都是用那剑削出来的。
众人说:那四十人哪行啊。
那人说:是啊,那剑,削金刚石就像削瓜一样。
众人惊叹:削瓜!削瓜多容易啊。
那人说:是啊,就跟削瓜一个样,不骗你,我看了大柱子上的断口。
有人说:金刚石多硬啊,什么都弄不开,瓜多好削啊。
又有人反对,说:胡说,瓜分好几种,我们胡瓜村种的瓜,就不好削,皮硬肉甜,特殊品种,进贡过皇上。
旁人说:人那是天上的剑。
那人说:那瓜大家都说是天瓜,那是十八年前,天上神仙不小心吃瓜的时候吐籽吐人间了,还就落在胡瓜村胡伯孙老人家田里,就长出这种瓜,和你们见过的瓜不一样,都是天上的东西,应该不能互相切。
有人反对,说:胡说,人都是地上的东西,还不都互相杀。
又有人说:那你那瓜今年收成好不好?
那人说:别提了,那瓜好静,要慢慢长,今年不知咋的,野兔子特别多,老蹿那藤,搞得瓜长不好。
有人说:那瓜长不好,就卖不出价钱了。
一老汉捏捏胡子说:这你就不知道了,奇货可居,瓜少了,价钱就高了。
有人说:高也高不过九年前跟鸡一个价。
有人提议:至少和野兔子一个价钱。
有人说:放屁,肯定是活的比死的贵。
有人说:扯呢,野兔子不值钱。满地都是。
有人说:野兔子难抓。
有人说:难抓还难吃呢。
说着说着,代表瓜贵和代表兔子贵的两方互相吵起来,互相不认输,纷纷列举出为什么兔子贵或为什么瓜贵,吵得面红耳赤,说野兔子贵的那方说了几句,说瓜贵那帮里突然就站起来一人,不知道从哪里抽出一把刀,大喊:老子就说是瓜贵,谁把野兔子卖贵了爷爷我砍了谁。
然后众人大乱,抽刀的抽刀,掏匕首的掏匕首,还有抄起板凳就打的,互相厮杀成一团。我和喜乐事不关己,马上退出店外观望。里面真是空前混乱,几十人数十种武器打成一团,因为事先互相彼此不认识,阵营乱了以后就不知道谁是谁了,难免出现了认为兔子贵的打了一人半天,那人快断气前还说:你打死我我都说是兔子贵。遇到这样情况,只好忍痛将那人打死。打到后来,大家虽然都打红了眼,但还算理智,打前问:兔子还是瓜?发现一言不和才动手。有一兔子贵的问一陌生人:兔子还是瓜,那人要说,瓜怎能贵过兔子,刚说了一个字,就给一板凳拍晕了,场面惨不忍睹,说明关键时候讲话还是不要太注重修饰。打到最后,伤的伤,死的死,昏迷的昏迷,全都趴地上了,只剩下一个认为瓜贵的还能站着,那人爬桌上,要说什么,发现自己打迷糊了,不记得自己的立场到底是兔子贵还是瓜贵了,痛苦不已,突然认出下面有一个被自己打得奄奄一息的家伙,于是想到如果问那人是什么立场,自然就知道自己的立场了,便一步跨上前去,揪住那人,问:兔子还是瓜?那人本来立场是兔子贵,看见仇人又来了,为保一命,要和那壮士装作自己人,吓得忙改口,说:瓜,瓜贵。那人大笑,一拳打晕那人,又跳上台,对着一地伤员大喊:哈哈,还是兔子贵!
这时候,下面有一个手脚都断了的瓜贵人士,认得桌上那人,知道他弄错自己立场了,提示道:兄弟,兄弟,你错了,是瓜贵。
后果自然是说话那人被一刀杀了。我和喜乐看得目瞪口呆
韩寒果然有天生搞笑的天分啊!不是恶俗的把幽默一下透露出来,而是委婉的道来,他写得有些夸张又似乎合情合理,不得不佩服他的文笔。
- 作者: goflyfreely 2005年05月24日, 星期二 23:51 回复(0) | 引用(1) 加入博采
我也搞个博客!
以前搞网页,太累!后来做FLASH,没成果!现在编程,太闷!唉!见大家都博客了,我也博客一回嘛!可是刚开始就犯了难,第一个目录取个啥名呢????想了半天,写我的生活吧,太普通。叫生活絮语吧,太酸。得!最后在想到了吃,于是在番茄炒鸡蛋一类的破名中选了个苦瓜,茄子,土豆出来。不容易啊!本来是要用番茄炒鸡蛋的,可是我不喜欢吃那东东,就没有用,我们也不能伤害人家啊!呵呵,看来我还是很善良的啊。不过现在留下的这三样可就是我最喜欢吃的东西了。本来以前很讨厌苦瓜的,太苦了放到嘴里就想吐出来。后来突发奇想有了想尝一下那种苦的滋味,在吃的时候尽量去体会苦的味道。后来不辛喜欢上了这种味道,所以现在它就在我所有喜欢的菜的首位了。至于茄子嘛!一直都喜欢,这个算是一种没有理由的喜欢嘛!喜欢的一种没有逻辑解释的情况!土豆--哈哈烧着吃,不过现在食堂把土豆烧成番薯一样,很有一套!服了他们了,好想有机会吃一次真正的烧土豆啊。
什么都没讲先说到吃了啊!不是我好吃,是民以食为天。通俗一点说人最先讲的就是吃了。我不知道从这些能不能看出一个人的品位。不过我就喜欢这三样了,算是一俗人嘛。以上算是个开端了吧。
- 作者: goflyfreely 2005年05月24日, 星期二 22:55 回复(0) | 引用(1) 加入博采