博文
在linux 上安装gcc-3.3.1编译器[转帖](2005-11-07 13:08:00)
摘要:在linux 上安装gcc-3.3.1编译器[转帖]
安装之前,必须保证系统中有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC 3.3.1情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。
系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的。与此不同,现在GCC建议我们将一个版本的GCC安装在一个单独的目录下。这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常。在本文中我采用这个方案安装GCC 3.3.1在安装完成后,仍然能够使用原来低版本的GCC编译器,即一个系统上可以同时存在并使用多个版本的GCC编译器。
按照本文提供的步骤和设置选项,即使以前没有安装过GCC,也可以在系统上安装上一个可工作的新版本的GCC编译器。
1. 下载
在GCC网站上(http://gcc.gnu.org/)或者通过网上搜索可以查找到下载资源。目前GCC的最新版本为 3.3.1。可供下载的文件一般有两种形式:gcc-3.3.1.tar.gz和gcc-3.3.1.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。
2. 解压缩
根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符):
% tar xzvf gcc-3.3.1.tar.gz
或者
% tar jxvf gcc-3.3.1.tar.bz2
新生成的gcc-3.3.1这个目录被称为源目录,用${srcdir}表示它。以后在出现${srcdir}的地方,应该用真实的路径来替换它。用pwd命令可以查看当前路径。
在${srcdir}/INSTALL目录下有详细的GCC安装说明,......
GCC 命令行详解[转帖](2005-11-07 13:01:00)
摘要:
GCC 命令行详解[转帖]
1、gcc包含的c/c++编译器
gcc、cc、c++、g++
gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译
2、gcc的基本用法
gcc test.c这样将编译出一个名为a.out的程序
gcc test.c -o test这样将编译出一个名为test的程序
-o参数用来指定生成程序的名字
3、为什么会出现undefined reference to 'xxxxx'错误?
首先这是链接错误,不是编译错误,也就是说如果只有这个错误,说明你的程序源码本身没有问题,是你用编译器编译时参数用得不对,你没有指定链接程序要用到得库,比如你的程序里用到了一些数学函数,那么你就要在编译参数里指定程序要链接数学库,方法是在编译命令行里加入-lm
4、-l参数和-L参数
-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了
好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,我们就能用上libtest.so库了(当然要用libtest.so库里的函数,我们还需要与libtest.so配套的头文件)
放在/lib和/usr/lib和/usr/local/lib里的库直接用-l参数就能链接了,但如果库文件没放在这三个目录里,而是放在其他目录里,这时我们只用-l参数的话,链接还是会出错,出错信息大概是:“/usr/bin/ld: cannot find -lxxx”,也就是链接程序ld在那3个目录里找不到libxxx.so,这时另外一个参数-L就派上用场了,比如常用的X11的库,它在/usr/X11R6/lib目录下,我们编译时就要用-L/usr/X11R6/lib -lX11参数,-L参数跟着的是库文件所在的目录名。再比如我们把libtest.so放在/aaa/bbb/ccc目录下,那链接参数就是-L/aaa/bbb/ccc -ltest
另外,大部分libxxx......
C++图书热点观察——孟岩(梦魇)著(2005-11-04 21:43:00)
摘要:C++图书热点观察
文 CSDN 孟岩 转载自2005年第11期《程序员》杂志
不知不觉,C++迎来了自己20岁的生日。20年来,C++从一个实验室语言成长为软件产业一 流主导语言,在实际应用中取得了巨大的成功,同时也催生了大量为技术人员耳熟能详的 经典技术著作,比如Bjarne Stroustrup的《TC++PL》和《D&E》,Stan Lippman的《C++ Primer》,Scott Meyers的《Effective C++》,GoF的《Design Patterns》,Andy Koen ig的《Ruminations on C++》,Herb Sutter的《Exceptional C++》,Andrei Alexandre
scu的《Modern C++ Design》,Addison Wesley的“C++ in Depth”系列等。C++领域的一 些经典图书不但对于C++语言的发展起到了巨大的推动作用,而且对于其他相关技术领域也 起到了指导和促进作用。例如Scott Meyers的“Effective系列”,开辟了技术图书写作的 新风格,而“Design Patterns”的影响,更是远远超出C++的范畴。这些经典的好书,已 经成为C++辉煌历史的一部分而被人们铭记。
20年后的今天,软件产业的规模和环境已经发生了深刻的变化。如今企业级应用整合与开 发的任务主要由Java、C#、Visual Basic以及各种新型动态语言来承担,而C++的应用场合 也有所收缩,不再是像1990年代中期那样从上到下包打天下,而是呈现出鲜明的应用领域 特色。相应的,近期的C++技术图书也更加注重在特色领域的发挥。下面我们分别从几个角 度来了解近期C++图书的热点,并且展望未来一年中C++技术图书中值得注意的选题。
经典著作全面翻新
这一两年,一大批经典技术图书都经历了一次更新换代,C++经典图书自然也不例外。第一 个要说的就是Scott Meyers的《Effective C++》。这本书在1991年推出第一版,1998年推 出第二版,在C++技术的传播与教育方面居功至伟。包括我在内的很多C++开发者都是通过 阅读这本书而寻得升堂入室的门径。今年,《......
美国大学启示录(李开复著)(2005-11-04 13:06:00)
摘要:
美国大学启示录
李开复
2004年9月
今天,美国大学的实力雄踞世界之首。美国的高等教育不仅是国家向公民提供的一项福利,也是创造社会财富的优良动力。美国卡内基小组的研究表明,美国的经济实力有50%是从它的教育制度获得的。拥有了世界一流的高等教育,美国才能拥有大量的自主知识产权、影响深远的杰出学者和强大的知识经济,才能成为科技强国。
然而,美国高教并不完美。美国在过去一百年中有许多措施、政策、制度、思路值得效法,但近20年来也呈现出流弊日滋的景况。
本文的目的在于分析大学对美国发展的重要贡献,探讨美国大学成功的根本要素,以及近二十年来显现出的弊端。《老子》说:知人者智,自知者明。但愿本文对美国大学体制成败得失的分析能对寻求中国教育制度进步的人们提供一种参照。
美国大学成功的五大理由
美国作为世界公认的科技强国,拥有世界50%以上的学术论文、诺贝尔奖得主和专利。美国之所以强大,很重要的原因就是它拥有为数众多的世界一流学府,它们吸引着全世界最优秀的学生负笈美国,一俟学业完成,这些学生很多都留在美国,成为美国支撑其科技强国地位的砥柱。
全世界最好的大学有85%是美国的大学(据上海交大所做世界大学排名,前20名中有17所美国大学)。美国用世界上最优秀的大学吸引世界各地的最有潜质的学生到美国学习,再用它强大的企业将这些人才中的大多数留在美国本土。在微软、IBM、苹果等美国高科技企业中充满了来自中国、日本、韩国、印度、加拿大、法国、英国等国家的拔尖人才。这些异域精英们为美国的科技和产业发展提供了坚实的人才基础。
美国大学的成功有五大理由:(1)英明的政策与官员;(2)灵活自由的教学方式;(3)严格的教师录取、晋升、管理制度;(4)在进步中求稳定的思维;(5)私立大学奇迹般的崛起。
(1) 英明的政策与官员
1862年,美国正着手开发西部,一位有远见的参议员Justin Morrill为了提供落后地区的农工人员受教育的机会,推动实施了《赠地法案》,由政府提供免费土地用以创办新的“赠地大学”。这个法案使每个州分别获得三万英亩土地,《法案》还允许大学将这些土地变卖,用卖地之资......
微软的成功之道(李开复著)(2005-11-04 13:02:00)
摘要:作为全球最成功的企业之一,微软公司在过去的二十多年里为全世界数以亿计的用户提供了无数杰出的软件产品,并以自己的实践经历揭示了软件产业内蕴藏的旺盛生命力和巨大商业价值。微软公司目前的市值是3100亿美元。在2005财政年度里,微软公司的销售收入将达约400亿美元,实现利润165亿美元。去年派发330亿美元的股息后,微软公司仍拥有350亿美元的现金储备。
我认为,微软不断走向成功的原因主要有四点:(1)技术:用创新的精神把握技术发展的脉搏,以合理的研发体系保证企业的效率,以执著的态度专注于软件业的发展;(2) 领导艺术:最高决策者拥有卓越的才识、明确的分工和完美的合作;(3)人才:多渠道发现和聘用人才,有效的人才筛选机制,对人才的持续培养以及知人善用;(4)企业文化:不惧挑战、自我批评、灵活平等以及对客户负责的态度已经在微软形成了一种传统,并得到了制度化的保证。下面,我将从这四个方面出发,分别介绍微软公司的运营和管理经验,希望对中国的高新技术企业有所帮助。
技术:微软的希望之光
(1)与时俱进、不断创新
三四百年前,知识是在很长的时间里慢慢积累起来的。但自工业革命以来,科技的进步已经不再是靠历史的积累,而更重要的是靠不断的创新。信息革命后,科技的成长呈现出指数增长的趋势。在信息技术方面,过去十年中人类获得的知识和经验毫无疑问已远远超过了过去一百年的积累。
微软公司深深地理解,在这样的大环境中把握技术方向的重要性。当微软公司在早期的Basic产品中获得成功后,开始投入DOS的研发。DOS成功后,微软立即将资金和人力投入到新技术的研发中,并成功推出了Office系列软件产品。随后,微软又利用Office等软件获得的积累,开始了Windows NT、Windows 2000、Windows XP等新一代操作系统的研发。当Internet浪潮到来时,微软不失时机地跻身网络研发领域,并不断推出新的产品。今天,微软又把大量的资源投入到“无缝计算”的核心方向,在发展MS......
Google和中国——追随我心的选择(李开复著)(2005-11-04 12:50:00)
摘要: 2005年7月19日,追随我心中的声音,我离开了微软,加入了Google。
微软是一个非常了不起的公司。我在微软学到了很多,终身受益。尤其是有机会和比尔·盖茨先生共事,终身难忘。所以,微软是个了不起的公司,值得我们学习。
但是,Google是一个让我震撼的公司。
令我震撼的是Google的“新一代技术”和那种对创新的热情。我发现Google遍地宝藏。它的技术和产品已远远超过了搜索,而最难能可贵的是每一个产品和网络服务都是“让人惊讶的好”。它以“一切自己动手”的原则,像一个大实验室似的,让公司的计算机科学家能够自己设计特殊软件和硬件,从此尝到“有重大影响力”的感觉。它能够经过新的软件开发模式,使网络具备了可以直接更新软件的能力,不用让用户进行漫长的等待,真正地把互联网服务发挥到淋漓尽致,造福社会,引我们进入网络时代的新一代。这些新的技术其实是一种新的创新模式,这是我向往学习的。
令我震撼的是Google对诚信的执著。Google是一个“不做邪恶的事情的公司”。它绝不允许伤害用户的利益,Google的员工也不允许买公司的广告。当我第一天上班的时候,一位新来的同事提出一个“先发制人”的战略。在别的公司,他可能会被认为是天才,但是他周围的人马上说:“这是邪恶的。你希望别人这么对你吗?”然后,他很不好意思地收回了他的意见。这是我向往的一片“诚信”净土。
令我震撼的是Google对大众利益的追求。Google上市时,坚决让股民直接买Google的股票,而不是由大投资银行分配给大户的做法,因此得罪了不少投资银行,但是得到了民众的好评。Google 是一个先让用户满意,以后再考虑赚钱的公司,如果不赚钱也没有关系。Google大部分的软件和服务都是免费的,而且许多软件和服务推出多年到今天还没有找到商业模式,但是只要能够帮助大众,我们就会继续地做。这种摒弃“唯利是图”的商场作风,赢得了用户的心,也带给了员工一种社会责任感。这是一种难得的信念,这是我尊敬的。
令我震撼的是Google的“激情魔力”。我认识的许多朋友都去了那儿。有些是资深研究者和科学家,我发现他们以前的憔悴消失了,他们充满了活力。有些是我的学生,我发现他们像找到了一个梦......
学习经验(转载)(2005-11-02 16:44:00)
摘要:转载
做为一名大四的学生,我面试过不少的单位,有成功的也有失败的,但是对我来说所有的失败在某种意义上都是一种成功,特别是我下面写的这些,写这篇文章的时候,我已经签了南京的一家软件公司,但是想起今年2月21日我面试苏州台湾的IT公司的经历联想到我们现在 学习编程的一些情况我真的深有感触,这次面试使我深深的体会到了失败但也收获了很多。我要说的将分成三部分,
1.是我面试的具体经过
2.是由面试想到的
3.现今我应该做的。当然这些话很大程度上是我个人的意见,不可能完全得到大家的赞同,所以 在某些观点上如果哪位朋友觉得跟我的有很大出入,请不要介意,也不要对我攻击,就当我没有说过,欢迎和我联系共同探讨这些问题!我的EMAIL:wutao8@263.net
1.面试经过
大约在年前我接到了台湾瑞晟(Realtek)苏州公司的面试通知,通知我2月21日到苏州工业园区面试,接到面试后的几天我把一些专业 课温习了一遍,特别是C++和数据结构,由于大学几年里,我一直专研这些方面,加上通过了高级程序员的考试,对于一些常用的算法 我差不多也达到了烂熟于胸的地步,当时的感觉是如果问了我这些方面的问题我应该是没有问题的! 21日那天我被安排在4:30面试,由一位技术人员单独给我面试,在问了一些简单的问题之后他给我出了一道编程题目,题目是这样的:
(由于具体面试的题目比较烦琐,我将其核心思想提取出来分解成了两个独立的简单的问题,有可能问题分解的不当,请大家见谅,实际面试了一个的问题但比其复杂很多,而且涉及一些高等数学变换)
1) 写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7......+n
哼,我的心里冷笑一声!没想到这么简单,我有点紧张的心情顿时放松起来!
于是很快我给出我的解法:
long fn(long n)
{
long temp=0;
int i,flag=1;
if(n<=0)
{
printf("error: n must > 0);
exit(1);
}
for(i=1;i<=n;i++)
{
temp=temp+flag*i;
flag=(-1)*flag;
}
编程之道(转)(2005-11-02 16:40:00)
摘要:编程之道 转载
前些日子在CSDN看到一篇文章,虽然是写笔者的人生经历,但里面提及的技术让我目瞪口呆(呆了半天说不出话来),(高中生的写尼姆达病毒源代码析,清华研究生写了Linux服务器集群系统,Lion 是四年制中专生.....),嗨,想想这些,再看看自己,都20来岁了,想想在这方面不可能有多大建树了,真是有些伤感。静下心来,参考了一些资料,总结了一些专家点评再加上一点个人的感悟,写了这篇文章希望能对后来者有些帮助使后来者少走些弯路:
曾几何时,为了一段程序的通过,翻阅了不知多少本册子,设置了不知多少个断点,耗费了不知多少个时辰,流了不知多少的汗水,哦,忘记了吃饭,忘记了睡觉。累乎?
曾几何时,当调试窗口出现 0 Error 0 Warning ,程序按照意图通过,一切的一切,全然不在话下,征服的快感顿生,哦,忘记了吃饭,忘记了睡觉。乐乎?
要学习编程是要有很大恒心和毅力的,首先你要明确自己的目标,想好自己编程是为了干什么。如果你学习仅仅只是一时想编出QUAKE和成为比尔盖次的冲动,那么我劝你还是应该不要开始学习,因为这样的目标很难支持你日后大量的学习。而且你的年龄不能太大(最好是中学或者大学生)。
1 无论学习编程还是计算机的其它方面,首先是培养兴趣,这点非常重要,如果有兴趣,编程会使你有强烈的兴奋感,你自然就有了强烈的求知欲。不然它就会是一份枯燥的工作,你也不可能深入学习下去。一开始可以看一些计算机软硬件杂志比如说<<电脑报>>,对于里面提及的计算机操作技巧尽量动手试试,这样会使你有些成就感,这很好,要的就是这个。其实学习一些“Crack技术”也是培养兴趣的一条捷径,上网看看,或去书店找找《黑客,就这么几招》之类的东东看看(想想这些"漫画书":->的作用这就于限此吧),当你发现开始对计算机产生兴趣后,那么就开始学习专业知识吧,上面提及的东东可以不用再看了,你可能觉得从中学了不少知识,但要清楚的是这些都是一些三流的非专业知识。你还有很长的路要走,得赶快上路,不要在上面浪费时间了!
2 &nbs......
张三丰的武功,实是射雕三部曲里最高的(转) (2005-11-02 16:12:00)
摘要:张三丰的武功,实是射雕三部曲里最高的
来自两全其美武侠版
如果说在创造太极拳、太极剑之前,张三丰比之新老五绝,甚至张无忌都有所不如。但在创造之后,张三丰就是神了,其武功之高,足以与达摩其名。请记住,在中国历史上,张三丰也正是因为太极拳才得以扬名千秋的,前期的张三丰微不足道,后期的张三丰傲视天下。
有人说太极拳有多厉害呢?以柔克刚,开天辟地。从现在的太极拳打败韩国跆拳道就知道,原来武术并不是快和有力就能得胜的。所以,郭大侠、空见、五绝都是以快和内力取胜的,如何能克制张三丰,尤其是张三丰的招式怪异,见所未见,实站中威力无限啊。张无忌在对付波斯明教时也吃了招式的亏,高下立见。
有人说杨过也自创武功,我同意,不过杨过自创的黯然消魂掌真的那么厉害?不见得,老实说金轮法王有点冤,主要是战斗中杨过突然使出了怪招的原因,其实杨过实力应在金轮之下,也略有不及郭大侠。
杨过的自创,是基于他对独孤求败的领悟的,但实际上他只领悟到了独孤求败的边缘理论,无法理解真谛,所以,他的自创不具有代表性,也并不能胜过老顽童,更不能与张三丰的太极拳相提并论。
看看书中怎么说的吧:
言念及此,心意已决,当下挑了铁桶,便上武当山去,找了一个岩穴,渴饮山泉,饥餐野果,孜孜不歇的修习觉远所授的九阳真经。数年之后,便即悟到:“达摩祖师是天竺人,就算会写我中华文字,也必文理粗疏。这部九阳真经文字佳妙,外国人决计写不出,定是后
世中土人士所作。多半便是少林寺中的僧侣,假托达摩祖师之名,写在天竺文字的楞伽经夹缝之中。”这番道理,却非拘泥不化,尽信经书中文字的觉远所能领悟。只不过并无任何佐证,张君宝其时年岁尚轻,也不敢断定自己的推测必对。他得觉远传授甚久,于这部九阳真
经已记了十之五六,十余年间竟然内力大进,其后多读道藏,于道家练气之术更深有心得。
某一日在山间闲游,仰望浮云,俯视流水,张君宝若有所悟,在洞中苦思七日七夜,猛地里豁然贯通,领会了武功中以柔克刚的至理,忍不住仰天长笑。
这一番大笑,竟笑出了一位承先启后、继往开来的大宗师。他以自悟的拳理、道家冲虚圆通之道和九阳真经中所载的内功相发明,创出了辉映后世、照耀千......
给新生的建议(转载)(2005-10-03 00:43:00)
摘要:来自北大软件学院bbs,未经同意请勿转载。题目是我替作者加上的。
前面那个看的头都晕了(指《三朝元老经验谈》http://blog.programfan.com/article.asp?id=5587 ),太长了。简单说说吧:
1。脚踏实地再脚踏实地
2。认真认真再认真
3。努力努力再努力
对于1:经常听到有的同学在讨论:XXX公司今年进世界500强了吗??华为现在能打的过外企嘛??cisco要不行了。微软真没前途。。。等等等等。这些问题真是太没意义了,作为一个年轻人,这些问题距离我们太遥远了,与其考虑这些问题,不如关心一下哪个公司给我的钱多福利好?我能去哪个公司?再穷的地方也有光拿钱不干活的,再富的地方也有光干活不拿钱的。脚踏实地,考虑清楚自己才是关键。
2:对于知识,要“精”。不要整天忙于讨论“架构、模型、管理”什么的,年轻人到了公司里面,都是从最基层的做起,了解一些上层的固然好,但这个时候对基本语法的熟练往往更有用。不要想着用的时候再查书,很多时候是老员工站在身后看着你做,这个时候甭说看书了,思考都来不及,靠的就是平时的熟练。
3:努力,这是老生常谈的问题。02入学的时候,不少兄弟都是工作过几年来上学的,有一种“老牛自知夕阳晚,无需扬鞭自奋蹄”的感觉,再加上4w学费,以及辞职的压力,都很自觉的抓紧时间学。社会竞争激烈,容不得半点偷懒。从后来的工作情况可以看到,凡是努力的人,结果都不太差,而上学期间忙着游戏人生的,只好自求多福了。这里还要说一点,究竟要努力到什么程度,才叫努力?我觉得基本就是发挥到你的极限,充分利用所有时间,同时做事的动作快到不能再快为止。须知,这是一个竞争的社会,“我今天努力了2个小时,明天再继续”,这样的想法是不行的。最重要的一点是,别把软院这3年当成本科4年来上。本科可以是混过来的,但这里不行,这里你要随时面对就业市场。
再说一个新生最关心的问题:
1。软院的学生到底好不好找工作?告诉你,好找。但前提是你做到上面说的这几条。现在确实有人因为没有学历、因为学费而歧视我们,但这些都不重要。虽然一些政府机关和大国企会看中这个,但是绝大多数外企和民营企业不重视这个,损失的机会不大。只要前面的技术、素质面试过关了,HR一般不会卡。这时候你只要说明情况,办完手续,进了公司就没人再纠缠你这个问题了。公......