分类目录归档:其他

其他

如何在程序中实现对三维模型的旋转

 如何在程序中实现对三维模型的旋转——探讨旋转过程中,程序所需要的变量与及计算原理

作者:KT

在程序中,通过鼠标旋转3D模型最常用的方法应该就是——轨迹球 

参考了国外的博客文章和同济大学高等数学下册之后,终于能初步明白这种轨迹球的计算原理,

我看了一下高数,把一些公式的推导过程也列出来了。

本日志的文字,图片以及推导过程,都是我利用软件和参考书籍完成的,尽量力求正确了

如果发现错误存在,请联系本人

阅读可能有一定的难度,毕竟最近才开始写技术类文章。

模拟效果示意图——用两张图片模拟一下效果,本日志旨在理论上进行分析

如何在程序中实现对三维模型的旋转

第一 : 简单介绍

我们在显示器所看到的屏幕是二维平面(只有X和Y),因此鼠标的坐标也就有X和Y坐标,那么将屏幕看成是一个平面,在这个平面后面,虚构一个球体(轨迹球,3D模型就位于轨迹球之内),然后屏幕平面捕捉鼠标的坐标,然后将鼠标的坐标投影到球面上!(下图效果示意图)

——轨迹球旋转带动3D模型旋转?可以这样理解,不过具体解释,后面会有!

图中鼠标点击在屏幕平面时,必须将其投影至背后虚构的轨迹球球面上!

第二:坐标转换

屏幕平面是二维坐标,而虚构的球体是三维坐标,很明显是不能将鼠标的坐标(X,Y)直接投影成三维坐标(X,Y,Z) 

因此这个时候需要进行坐标维数的转换!

——二维坐标能够转换成三维坐标吗?答案是可以,虽然二维坐标只有(x,y),但是将二维坐标通过合理变化后,再利用x坐标值和y坐标值就能计算出z坐标值,后面我会写上详细的公式推导过程。

下图就是转化示意图,强调一点,这个是前视图的投影图来的,两个正方形都是屏幕平面的正面!

 好,现在鼠标点击了屏幕平面,那么就必须利用一定的变化公式将这个点转变为三维坐标点!——即计算圆形中X和Y的值

注意三维图中的1和-1是相对数,代表1个单位,不是具体的值,因此三维图中的X和Y是相对值,即百分比!

Px、Py分别是鼠标的X坐标和Y坐标,这个在程序中是可以直接捕获得知数据的!

公式如下:

 

解释:因为三维图的中心点 (0,0) 在二维图中是(width/2,height/2),

三维图中,中心点(0,0)到上下左右边的距离为width/2,height/2,而且到上下左右四边的标记距离都是1个单位!
即width/2就是三维图中X轴的1个单位,height/2就是Y轴的1个单位 

px-width/2 就是该点在三维图中距离竖轴的距离,然后将该值除以width/2就能得出这段距离占1个单位的比例!——即 X 值!

 

那么Y的公式就是:

这样是错的!错的!

为什么,我们观察下,二维图中的Y轴,这个这里取的是Y的负半轴!所以Py应该是负值,

但是在三维图中,我们看到投影的点的坐标(x,y)是在[1,1]的正半轴区间内,y的值肯定是正数,所以要将上面计算出来的Y值取相反数!

正确的公式是:

 一开始我也没有想明白,结果算错了,不过事后发现这里的推导还是很简单

如果大家还是不明白这一点的话,那么可以这样理解,首先利用

计算出来的y必定是负数,因为Py只能为负(二维坐标中,取的是Y的负半轴) ,好那么这样计算出来的投影点坐标应该是x为正,y为负,在[1,-1]区间内,那么这个点很明显与实际的投影点是关于中心横轴对称的,如图所示

那么计算错误的投影点Y 与 正确投影点的 Y 就应该是关于中心横轴对称的,互为相反数,因此对错误的Y取相反数就就能取得正确点的Y值,这样理解起来应该没问题了!

好了,现在我们已经拿到了投影点的X值和Y值了,那么正如前面所言,通过X和Y计算Z值!

在球体中 有一公式:

 

 其中r是球体半径

公式推导:

首先需要预习一下向量的基础知识——翻起了高等数学 – -!

         

    向量a , 向量 b , 向量 c

    a+b=c  这个向量公式,大家应该都记得吧

那么开始进入球体公式推导

首先 a+b=c  , c+e=f  f 就是球面半径的向量   那么就是 f=c+e=a+b+e  求出向量的模的话,就是 

 其实 a的模就是x坐标值,b的模就是y坐标值,e就是z坐标值!

如果还是不懂话 ,直接用勾股定理吧 (x,y,z轴都是互相垂直的!)

好了,公式

 得证了,那么

Z坐标值计算公式:

 因为球体半径r=1 所以,最终公式为

好啦,二维坐标转为三维坐标的计算完成, 得到了在轨迹球面上的投影点坐标(x,y,z)!

第三:点与点之间的旋转


旋转示意图

 

示意图说明:鼠标投影点从v1处从移动到v2处,旋转轴的概念就等同于地球的地轴——这样说应该能明白了吧

如果要实现轨迹球旋转,就必须获得v1,v2,θ和旋转轴!

v1,v2可以用第二步中的坐标转换得到,

那么这里主要是计算出 θ和旋转轴

这里也是需要一些背景知识,其实大家都学过,还是向量

我借用书本上的例子来说几点——两向量的数量积!  两向量的向量积!

书本例子:——已经懂的可以跳过

同济大学高等数学第六版下册P13

 设一物体在恒力F作用下沿直线从点M1移动到点M2,以S表示位移量M1M2,那么F所作的功的计算:

F看成是a向量

s看成是b向量 那么就有

a*b=|a| |b| cos(θ)

所以得到

 

好,这样我们就可以利用这个公式在轨迹图中计算θ值了

θ求出来了,那么旋转轴呢!

其实旋转轴 

Axis=v1 * v2 

因为对于向量a,向量b,向量c,

若c=a x b ,那么c就是必须与a,b都垂直的!

很明显旋转轴Axis是与v1和v2垂直的!满足于c=a x b!

所以Axis=v1 * v2 

关于这点 具体解释 请见同济大学高等数学第六版下册P17


好,回答之前的问题

问:是轨迹球旋转带动3D模型旋转?

答:我现在的观点是,轨迹球是虚构存在的一个球,为了能够让程序在计算过程中获得一个球体曲面而虚构出来的立体图形,它的作用不是实现旋转,是为了将我们在程序(显示器屏幕平面)所点击的鼠标坐标转化为一个在球面上的坐标,我们看到的程序是一个平面,但是我们已经通过这个虚构的轨迹球将我们的操作球立体化了,那就相当于我们是在球面上操作着鼠标!然后计算出旋转所需数据,传递给3D模型,使其发生旋转变化!轨迹球就是一个为了满足计算而提供曲面的虚构立体图形!


这里我想用一句简单的话话概括这篇日志的重点

——虽然我们看到的是一个平面,但是我们在这平面背后操作的是一个立体图形!

——————————————————————————————


好了,现在能够计算出v1,v2,θ和旋转轴,这个四个东西已经能够满足一般的旋转动画的变量需求了,一般的3D模型旋转动画程序都是需要这四个变量——当然还有一些很强劲的dll提供的接口已经是很人性化了,只将二维的鼠标坐标跟3D模型传进去函数即可。虽然我弄了这些这些公式推导,但在实际生活中,我也会试着去找别人写好高级类库来完成工作,因为这个理论的推导用的是球体,忽略了3D模型的具体外在形式,现实生活中的模型,不可能那么完美的嵌入到球体中,有可能是需要椭圆体,这个时候利用上面的推导会出现很严重的快速转移错误——因为高度变窄,鼠标稍微移动就能产生大幅度的旋转,这种旋转是快速而错误的!

这仅仅是一个问题,还有各种变焦,摄像机角度更换的更深层次的

C#中的几种数据类型转换

1、string to btye[]

// string to byte[]
string str = "abc";
byte[] data = System.Text.Encoding.Default.GetBytes(str);

 

2、 byte[] to short[] 和 short[] to byte[]

// byte[] to short[]
short[] shortArray = new short[compressedData.Length * Marshal.SizeOf(compressedData[0])];
IntPtr ptrByteArray = Marshal.UnsafeAddrOfPinnedArrayElement(compressedData, 0);
Marshal.Copy(ptrByteArray, shortArray, 0, shortArray.Length);

// short[] to byte[]
byte[] byteArray = new byte[u16buf.Length * Marshal.SizeOf(u16buf[0])];
IntPtr ptrShortArray = Marshal.UnsafeAddrOfPinnedArrayElement(u16buf, 0);
Marshal.Copy(ptrShortArray, byteArray, 0, byteArray.Length);

3、截取byte[]中的一部分给另一个byte[]

byte[] buff = new byte[100];
byte[] compressedData = new byte[30];
Array.Copy(buff, 4, compressedData, 0, 30);

 

Eclipse+CDT+Cygwin,让我情何以堪啊……

为了编写跨平台程序,一是采用了Eclipse+CDT+Cygwin开发,中间真是莫名其妙的问题层出不穷,每次解决了问题,不知道什么时候又回冒出来,而有些问题,第一次出现后记录下来的解决办法,第二次却无法依据同样的方法解决,真是让人欲哭无泪啊……

1、multiple target patterns问题

记得最先碰到这个问题,可以在项目的Properties的C/C++Builder—>Tool Chain Editor—>Current toolchain选择Cygwin,Current Builder由Gnu Maker Builder改为CDT Internal Builder解决。据说是因为Gun Maker的3.8.0版本有bug,改成3.8.1可以解决问题,当然可以选用CDT Internal Builder,也能解决这个问题。but,有时候,你用CDT Internal Builder,一样产生multiple target patterns问题,汗。。。

另一种说法是windows下的盘符后的冒号(如”D:\“)会被Maker解释成对象分隔符,从而导致Maker错误的认为后面是个编译对象,从而导致multiple target patterns问题,解决办法是在主菜单—>Window—>Preferences—>C/C++—>Debug—>Source Look Path中点击Add按钮,选择Path Mapping,添加盘符映射(如’C:\’映射成’\cygdrive\c\’、’D:\’映射成’\cygdrive\d\’)来解决。但貌似也不见得有效,汗。。。

2、同一个项目中的.cpp文件竟然找不到自己的.h文件

这个问题郁闷了我好几天,发现是因为一个项目引用另一个动态库项目时,如果通过Properties—>C/C++ General—>Path and Symbal—>References中勾选要引用的dll项目进行自动引用,用CDT Internal Builder则会出现同一个项目中的.cpp文件找不到自己的.h文件的问题,只好把CDT Internal Builder改成Gun Maker,然后再在Properties—>C/C++ Builder—>Settings的Includes和Libraries中手动加入对动态库的引用,即可解决问题。汗。。。

苹果成功秘诀:十大关键因素导致与众不同

图说:人人都希望像史蒂夫。乔布斯,但这并不是象看起来那么容易。

2010年5月26日下午2点30分,苹果公司成为技术领域的最大公司,并且仅次于埃克森美孚公司,成为全美第二大公司。在过去的数月间,苹果公司的市值一直咬紧微软公司。

过去数年间,苹果公司的发展历程恰似航天火箭的发射过程———一系列快速紧密有序的爆炸而后直冲苍穹。苹果公司本身,它的领导者及它的产品已经变成了一种文化上的通用语。戴尔公司想成为商业领域的苹果公司,Zipcar亦想在汽车共享领域成为苹果公司,戏剧演员比尔·马赫甚至说,如果苹果公司总裁做总统,政府将能提供更好的服务。

一个公司或个人怎样才能成为“某某领域的苹果”?在与苹果公司前雇员,现任合伙人以及其他一些长期关注苹果的专业人士进行探讨交流后,我们可以清晰地看到这个问题的答案,它们围绕以下十大关键因素展开。

乔布斯经常亲自指导工程师们

1、不落俗套

在 1980年代领导苹果工作团队设计产品时,在“笔记本看起来应该像什么”这个问题上,斯蒂芬·乔布斯经常亲自指导工程师们。“有一次他在百货商店看到一个异常精美的厨具”,安迪·赫兹菲尔德说,“然后他就要求设计师把笔记本设计成他看到的那个模样”“还有一次他要设计师把产品设计成保时捷的模样”。安迪· 赫兹菲尔德是苹果创始工程师之一,并著有《硅谷里的革命:苹果公司成长的伟大历史》一书。

计算机看起来更应该像跑车和厨具,而苹果公司的追随者恰是高端人群———那些已买或者是将买保时捷的人。很明显,仅通过跟随硅谷的市场动向,通过技术专家或是其它俗套的设计,你很难吸引他们。而苹果的魔力,恰恰在于自己钻研,从而不落俗套地吸引其目标客户。

2、逾越常规

技术专家普遍认为,源代码开放是大势所趋,且体现共享原则。在这一背景下,苹果被视为略显封闭。

但在苹果的哲学里,封闭与自由并不冲突。“我们正竭尽所能的让用户体验到预想效果,”乔布斯在给莱恩·塔特的电子邮件中写道。此前,莱恩在博客中抨击苹果禁止在iPhone和iPad上使用Flash技术。“你可以不赞同我们,但我们的动机是纯洁的。”乔布斯写道,“禁止该技术是因为苹果商店提供了太多自由,你能买到盗取个人隐私的程序,也能买到摧毁电池的程序,还能买色情影片。”

尽管如此,程序员们一直抱怨苹果商店过于封闭,他们认为苹果商店在设计应用程序上一直持独裁态度。即问题不在于它是封闭的,而在于它在规则制定方面是独断专行的,隐蔽的,频繁变动的。如果苹果公司能放宽透明度,就能避免上述大部分争议。

但根本上,苹果不在乎争议。虽然批判仍在持续,但是苹果商店已经取得了巨大的成功,就连其反对者也不得不承认它极其便捷且妙趣横生。

3、拒绝复杂

“拒绝”可能是乔布斯在苹果公司所扮演的首要角色。“他简直是个过滤器,”苹果电脑工程师赫兹菲尔德说。每一天都会有设计者向乔布斯展示关于新产品和在现有产品上加入新特征的创意,而他的回答几乎都是拒绝。“我为那些我们没有去做的产品感到骄傲,正如同我为那些我们做出来的产品感到骄傲一样。”乔布斯在 2004年接受采访时说。

乔布斯拒绝的原因,不仅出于对复杂设计的一贯反感,还有成本考虑,并制造期待效应。对一些复杂的设计说不可以使成本降得更低,减少一些产品的特征还能制造一种期待。“故意忽略一项人们想拥有的产品特征,会激发人们对它的渴望。”苹果公司的前工程师雷德说,“当你在新版本中将这个功能加入时,用户得偿所愿,则更加高兴。”

苹果公司一遍又一遍地运用着这个策略,最新的例子是iPhone O S4,它添加了多任务操作功能。事实上,该功能用户们从2007年起就开始要求。再来看看iPad,真的没法添加摄像装置吗?

4、服务客户

不管你的产品有多好,它总有出问题的时候。近年来,在笔记本和手机领域,苹果的竞争对手们大多采取回避客户而非服务客户的策略。它们关掉了自身的客户服务部门,并将这项业务外包给由低薪员工组成的电话服务中心。它们甚至要客户自己去网上寻找常见问题的解答。

而二十年前,苹果公司制订零售策略时,就明确了一个压倒一切的优先目标,即创立一种让客户完全联想不到计算机工业的零售商店。他们致力于在商店中营造一种类似四季酒店大堂的友好氛围。

G eniusB ar 便是代表。G eniusBar里的工作人员会为你诊断每一款苹果公司的产品,而不管你从哪里买的。除非过了保质期,公司对上述服务不收取任何费用。苹果公司为何如此慷慨呢?曾在G enius Bar工作过的德尔说:“有时候客户进来时是为寻求帮助,但在离开时却购买了新产品。”

5、忽略意见

乔布斯总是在各种场合频繁引用亨利·福特的名言:“如果我问客户他们需要什么,他们总是说要‘一匹更快的马!’”

乔布斯用这句话,来说明苹果公司所信奉的哲学,即人们预想不到他们真正需要的东西。客户会告诉你一大堆他们所需要的东西,但是当你按照他们的意图制造出来时,这又不是他们想要的。将那些尚不存在的东西形象化,并不是一件容易的事。

不过乔布斯也不是将客户的反馈视为无物。他将其看做是鼓舞,而非方向;是方式,而非结果。所以苹果总是能推出既能满足客户需求同时又超越客户想象的新产品。

6、处处营销

如同G enius Bar已被证明是天才创意一样,如今风行全球的苹果宣传口号“换种方式思考”也被证明不是空话,因为苹果粉丝们的思考方式确实与众不同。粉丝对苹果的忠诚度堪比基督徒对耶稣的忠诚度。苹果的品牌是如此的强大和有吸引力,以至于对有些人而言,苹果已经成了一种信仰。

苹果公司通过一系列精细入微的方式,来培养粉丝对苹果品牌的宗教般的狂热。包括渲染产品的神秘等。而最重要的方式,是强化苹果产品的象征意义,最有效的市场营销策略则植根于产品本身。苹果公司用颜色、声音、形状等元素的组合,构建了清晰的品牌形象。苹果通过这些策略使其品牌形象深植人心。

这一点在苹果发布新产品时表现得尤为明显。通过一系列统一协调的步骤,苹果调动大众的胃口,吸引更多人关注。在公众的注意力高度集中时,苹果再适时对外公布其早就准备好的信息或新产品。这一切都是围绕着营销进行的。

7、推陈出新

如果有天苹果推出了一款没有桌面的电脑,请不要感到惊讶。

仅仅是幻想吗?绝对不是,这些都将写进苹果的专利申请文件里。虽然还没有看到这些产品,但我们丝毫不应怀疑苹果的创新能力。事实上,没有任何一家公司像苹果那样频繁地对所在领域的基础环节进行反思和重构。仅仅在过去的短短几年间,苹果公司就对其笔记本电脑的生产工艺进行了大幅度革新,这也是笔记本生产设计领域有史以来所进行的最迅捷最大规模的革新,除苹果外,没有任何其它公司做到这些。

苹果完全无视IT领域所强调的兼容性的概念,这对诸如微软这样的竞争者来说是福亦是祸。在苹果公司的历史上,它数次采用新的操作系统和新的芯片构造,这些决定总是使它原来的生产组装基地立刻变得过时。苹果总是不停地否定过去设计中的不合理及不足之处,不断地推陈出新,使其产品总能以独特的风格傲立于时代前沿。

8、适当“独裁”

2000年,作为苹果阿斯塔特美国业务分部的运营经理,麦克·伊万杰李斯特负责D V D刻录技术研发,即将这种D V D装在高端电脑上,并且在未来将其转变为iD V D。该项目界面呈现出来的,是多种多样的窗口和菜单选项,以及大段的功能解释文字。

“这时乔布斯走了进来,”伊万杰李斯特回忆说,“他没有仔细看我们的工作,而是在白板画了一个框。”“这就是新设计。”乔布斯说,“只要一个窗口,将音像资料推入窗口,然后点击一个叫播放的按钮,这是我们要的。”

“所有人呆若木鸡,”伊万杰李斯特说,这种风格与他以前所就职的公司迥异。技术领域追求具有包容性的、彻底的、集合大众智慧的创新。而苹果的工程师则要花费 100%的时间去设计由一小部分资深经理或是乔布斯一个人计划的产品。有权做出决策的人是如此之少,以至于苹果一年仅能够推出一项或两项创新产品。

9、重新发明

“革命性”是乔布斯最喜欢的词之一。他极力夸赞苹果的每个发明创造都是独一无二的和有创造性的。

苹果的产品到底具不具有革命性,取决于我们对革命性这个词的定义。苹果公司擅于搜集汇总技术领域的最新创意,并通过转化将其变为己有。苹果擅长发现别的同类产品上存在的问题和不足,并在其推出的产品上将上述问题和不足予以解决,或者是对货架上的其它同类产品在苹果的模式下进行改良革新。

iPad 就是一个典型例子。早在2001年比尔·盖茨就推出了一款具备几乎相同功能的建立在w indow s操作系统基础上的产品,但是当时在交互界面,应用软件开发方面存在诸多需要解决的问题,微软公司就没有继续坚持下去。乔布斯发现在苹果公司现有的技术基础上,上述的问题都不成其为问题,于是iPad横空出世。在刚推出的两个月里,iPad就卖出了200万台。

10有条不紊

在 iPad上市几周后,惠普、微软及其它一些公司相继推迟了同类产品的上市。它们正试图制作出比iPad更加精密、功能更加齐全的产品。它们正致力于创造自己版本的‘快马’,于是它们推迟面市,又回到了设计室。与此同时,苹果的其它竞争者如Google,Intel等也快马加鞭地在该领域排兵布阵。

苹果公司并没有为这种竞争态势所牵制,它严格地按照自己的时间表行事。苹果公司的时间表是严格按照其自身的经营策略和长期愿景目标来制定的,其受市场态势和竞争者状况的影响较为轻微,这样苹果公司总能掌握主动权,适时地推出一些新产品,占尽市场先机。

文:FarhadManjoo

编译:南都记者 辛灵

C#中利用联合类型(union)做数值类型转换(byte[] to float)

在C/C++中,联合类型经常用来做数据类型转换,比如下面的联合类型可以直接将char数组转换成float类型:

#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

typedef union _UnFloat
{
float value;
char buff[4];
}UnFloat;
int main()
{
// convertor
UnFloat uf;
uf.value = 0;

float f = 3.1415626;

// byte array
char cf[4];
memset(cf, '\0', sizeof(cf));
memcpy(cf, &f, sizeof(cf));

// convert
memcpy(uf.buff, cf, sizeof(uf.buff));

// output
printf("The union converted float value is %f", uf.value);

char input[255];
gets(input);

return 0;
}

输出为:

The union converted float value is 3.141563

C#中没有联合类型(union),但是利用FieldOffset属性,就可以通过结构体定义联合类型:

using System.Runtime.InteropServices;

namespace FloatConvert
{
[StructLayout(LayoutKind.Explicit)]
public struct UnionFloat
{
[FieldOffset(0)]
public float value;
[FieldOffset(0)]
public byte buff0;
[FieldOffset(1)]
public byte buff1;
[FieldOffset(2)]
public byte buff2;
[FieldOffset(3)]
public byte buff3;
}

}

该为老母亲做点事

妈妈都快70了,来这里帮忙带孩子,累的不忍心啊……

等忙过这阵子,打算为老母亲做点事:

1、年纪大了,带孩子跑来跑去的一天已经够累的了,别再干这么多活了

2、买点像样的衣服、鞋帽

一直很愧疚……

再来说说iPhone接收彩信的配置

之前找了好多教程啊啥的都配置不成功,用了一年多iPhone,始终没能接收和发送彩信。

今天再次找了篇文章,按照所说的参数配置完成,果然收到彩信了,既郁闷又兴奋。

下面再说说iPhone3GS的配置过程。

第一、从设置->通用里进入“网络”

 

打开“蜂窝数据”,进入“蜂窝数据网络”:

 

“蜂窝数据”中的APN一定要填cmnet,其他空着:

 

“彩信”中的“APN”一定要写“cmwap”、“MMSC”为“http://mmsc.monternet.com”,记得必须加“http://”,“彩信代理”写“10.0.0.72”,没必要加80端口号!“最大的彩信大小”设置成50000足够了。其他不用管。

第二、返回到“设置”,找到“短信”栏

 

进入后如下设置即可:

记得设置完后必须重启,我尝试进入飞行模式然后重新取消飞行默认来重置网络,似乎不起作用。

 

Processor of the iPods

What processor do the iPod, iPod mini, iPod nano, iPod touch, and iPod shuffle models use?

Apple provides no official information regarding the processors used to power the iPod models.

Starting with the iPod nano 2nd Gen, the company has gone as far as having the processor custom branded with an Apple logo to make it more difficult to determine its origins. However, the below chart is believed to be accurate.

iPod Name Processor Details
iPod (Original/Scroll) PP5002 PortalPlayer PP5002 “system on a chip” with dual embedded 90 MHz ARM 7TDMI processors.
iPod 2nd Gen PP5002  
iPod 3rd Gen 10/15/30 PP5002  
iPod 3rd Gen 10/20/40 PP5002  
iPod 3rd Gen 15/20/40 PP5002  
iPod 4th Gen ClickWheel PP5020 PortalPlayer PP5020 “system on a chip” with dual embedded variable speed 80 MHz ARM 7TDMI processors.
iPod U2 4th Gen PP5020  
iPod photo (30) PP5020  
iPod photo (40/60) PP5020  
iPod Color Display PP5020  
iPod U2 Edition (Color) PP5020  
iPod mini PP5020  
iPod mini 2nd Gen PP5020  
iPod 5th Gen (Video) PP5021C PortalPlayer PP5021C “system on a chip” with dual embedded variable speed 80 MHz ARM 7TDMI processors. For video decoding, these models use a Broadcom VideoCore BCM2722 processor.
iPod U2 5th Gen PP5021C  
iPod 5th Gen – Enhanced PP5021C The “Enhanced” 5th Gen iPod models are believed to use the same processors as the 5th Gen models.
iPod U2 5th Gen Enh. PP5021C  
iPod classic 6th Gen Samsung ARM Apple provides no information on the processor used in the iPod classic (6th Gen) models, but it uses an Apple branded processor, believed to be a Samsung ARM. For more information, please refer to iFixit’s disassembly guide.
iPod classic (2008) Samsung ARM Apple provides no information on the processor used in the iPod classic (6th Gen/Late 2008) models, but it uses an Apple branded processor, believed to be a Samsung ARM like its predecessor.
iPod nano PP5021C PortalPlayer PP5021C “system on a chip” with dual embedded 80 MHz ARM 7TDMI processors.
iPod nano 2nd Gen Samsung ARM Apple provides no information on the processor used in the iPod nano 2nd Gen models, but each uses an Apple branded processor, believed to be a Samsung ARM. For in-depth speculation regarding all of the chips used, please refer to ArsTechnica’s iPod nano 2nd Gen “autopsy.”
iPod nano 2nd Gen RED Samsung ARM  
iPod nano 3rd Gen/Fat Samsung ARM Apple provides no information on the processor used in the iPod nano 3rd Gen models, but each uses an Apple branded processor, believed to be a Samsung ARM. For more information, please refer to iFixit’s disassembly guide.
iPod nano 4th Gen Samsung ARM Apple provides no information on the processor used in the iPod nano 4th Gen models, but each uses an Apple branded processor, believed to be a Samsung ARM. For more information, please refer to iFixit’s disassembly guide.
iPod nano 5th Gen Samsung ARM Apple provides no information on the processor used in the iPod nano 5th Gen models, but each uses an Apple branded processor, believed to be a Samsung ARM. For more information, please refer to iFixit’s disassembly guide.
iPod nano 6th Gen Samsung ARM Apple provides no information on the processor used in the iPod nano 6th Gen models, but it is believed to use a Samsung ARM like its predecessors.
iPod shuffle STMP 3550 Uses a 75 MHz SigmaTel D-Major STMP 3550 processor.
iPod shuffle 2nd Gen Samsung ARM Apple provides no information on the processor used in the iPod shuffle 2nd Gen models, but it uses an Apple branded processor, believed to be a Samsung ARM. For more information, please refer to iFixit’s “teardown.”
iPod shuffle 3rd Gen Samsung ARM Apple provides no information on the processor used in the iPod shuffle 3rd Gen models, but it uses an Apple branded processor, believed to be a Samsung ARM. For more information, please refer to iFixit’s “teardown.”
iPod shuffle 3rd Gen Color Samsung ARM Apple provides no information on the processor used in the iPod shuffle 3rd Gen (Colors) models, but it uses an Apple branded processor, believed to be a Samsung ARM. For more information, please refer to iFixit’s “teardown.”
iPod shuffle 4th Gen Samsung ARM Apple provides no information on the processor used in the iPod shuffle 4th Generation models, but it uses an Apple branded processor, believed to be a Samsung ARM.
iPod touch Samsung ARM Apple provides no information on the processor used in the iPod touch models, but it uses an Apple branded processor, believed to be a Samsung ARM running at 400 MHz. For more information, please refer to iFixit’s disassemblyguide.
iPod touch 2nd Gen Samsung ARM Apple provides no information on the processor used in the iPod touch 2nd Gen models, but third-party “teardowns” indicate that it uses an Apple branded Samsung ARM processor running at 533 MHz. For more information, please refer to iFixit’s disassemblyguide.
iPod touch 3rd Gen Samsung ARM Apple provides no information on the processor used in the iPod touch 3rd Gen models, but third-party “teardowns” indicate that the 32 GB and 64 GB configurations use an Apple branded Samsung ARM processor running at 800 MHz. For more information, please refer to iFixit’s disassemblyguide.
iPod touch 4th Gen Apple A4 Like the original iPad and iPhone 4, the iPod touch (4th Generation) uses a custom ARM-based “system on a chip” that Apple refers to as an “Apple A4” processor. It integrates the CPU, graphics, the memory controller, and I/O functions.
iPod touch “4.5” Gen Apple A4 The iPod touch “4.5” Gen uses the same Apple A4 processor as the 4th Gen model.

Should you have additional, or alternate, information about the processors used in the iPod please share.

iSuppli: iPod Nano 材料费才 $43.73

  新款iPod nano改用了触摸屏,但却去掉了上代的视频摄像头和传统的转盘操作,闪存容量最少也仅为8GB。事实上自从2008年NAND闪存价格不再大幅下跌以来,苹果就放弃了每代容量翻番的做法。苹果iPod nano 6代成本分析:为售价三成

 苹果的产品总是在备受关注的同时也饱受争议,比如苹果上个月发布的新产品ipod nano第六代,目前iSuppli分析认为:这个小东西凭借精巧的尺寸、低廉的成本、丰富的功能,再次验证了那句传统格言:“少即是多”(Less is More)。经过细致分析,iSupplli认为新款触摸屏iPod nano 8GB版本的物料成本(BOM)为43.73美元,只比第四代的40.80美元略贵一些,在历代iPod产品中是第二低廉的。

  iSuppli首席分析师、拆解服务经理Andrew Rassweiler指出:“很多品牌的最新产品都是拼命增加功能,但是苹果的第六代iPod却维持甚至移除了部分属性,以满足尺寸和功能的需要。这让苹 果拥有了最小巧的iPod,不但有触摸屏,还严格限制了元件成本。

  第六代iPod nano 8GB物料成本一览:

  - 存储芯片(东芝8GB MLC NAND和三星512Mb Mobile DDR):14.40美元

  - 显示和触摸屏模块:11.50美元

  - 应用处理器(三星APL3278A01/ARM架构)和相关DRAM:4.95美元

  - 用户界面(Cirrus Logic音频编码器、意法半导体加速计、Cypress半导体触摸屏控制器、Silicon Laboratories FM收音机、Intersil视频驱动等等):3.49美元

  - 附件(耳机、USB数据线、包装、说明书):2.42美元

  - 机械元件(金属、塑料等等):2.00美元

  - 电源管理(Dialog电源管理电路、MOSFET、二极管等等):1.33美元

  - 电子机械元件(PCB、接头等等):0.89美元

  - 电池(锂离子聚合物):0.70美元

  - 其他:2.05美元

  如果再算上1.37美元的制造成本,第六代iPod nano 8GB的总成本将为45.10美元,相当于建议零售价149美元的30%。

文/驱动之家

一个标准的软件开发流程步骤及文档

一个标准的软件开发流程需要有哪些步骤,写哪些文档?
1、先是需求调研,出《需求文档》;
2、 然后概要设计,出《概要设计文档》;
3、然后详细设计,出《详细设计文档》;
4、然后就是编码,出软件代码,最好能出单元测试文档;
5、然后就是联调,可能有多个部分,需要联合测试;
6、最后就是软件交付了,交付软件、代码、使用说明书

软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。

第一步:需求调研分析

1相关系统分析员向用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。

2 系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚例用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。

3 系统分析员向用户再次确认需求。

第二步:概要设计

首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计 进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、 运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。

第三步:详细设计

在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实 现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。

第四步:编码

在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。

第五步:测试

测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。

第六步:软件交付准备

在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。

《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。

《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。

第七步:验收

用户验收。

软件维护

1、软件数据库管理 [1] 2、用户跟踪培训

3、故障分析解决

软件升级

需求调整分析

软件功能拓展

优化系统

报废处理

软件不能适应业务发展

新软件项目立项

企业数据信息备份

举例解析

1 例如某家公司想找人订做一套人事管理软件,从某种渠道上得知某家软件开发公司提供这种服务,所以进行联系。

2 软件开发公司会派专门的软件工程师到他们那里去了解我们要设计一个什么的东西给用户用,然后回来做个方案给他们,其中方案的内容包括:开发出来的软件大概的界面是怎样?方便什么人使用?什么人可以使用什么功能?方便到什么程度?大概的硬件要求是怎样等?

3 用户看了方案后,确定他们就是要做一套这样的软件,开发方就开始开发这套软件。

4 开发方把开发出来的软件交给用户使用,其中在使用的过程中哪里使用不方便或哪里达不到要求,开发方会第一时间修改这些功能,直到用户要求的所有功能都能很完美的解决掉。

5 用户如果因为公司发展壮大的需要,需要将软件升级开发方会做功能拓展。

参考资料
软件开发流程

http://edu.newer.com.cn/images/shixun_02.gif

本文参考:http://apps.hi.baidu.com/share/detail/19058495

开发者如何利用好黄金时代?

作者:David Haywood Smith

Kernel的技术编辑、ScribeSub.com的创始人David Haywood Smith曾说过,现在是开发者的黄金时代。反过来说,现在如此多的资源摆在面前,开发者又该做些什么来好好利用这个黄金时代呢?David Haywood Smith在博文《The Golden Age Of The Developer》中表示开发者应该做到“Following”、“贡献”和“领导”,不断在技术界晋级。

下面是该文的译文:

现在是开发者的黄金时代。现在有如此多的开源软件、学习资源及优秀的Web服务,它们可以帮助我们学习新语言,提供帮助,还可以让我们与他人协作完成一个项目。如果我们的点子够新意,就会有很多投资者为我们投资,帮我们创业。

这并不是说我们所做的工作很容易。一定要设立高的标准。这些可用的资源可以帮助我们快速进步,获得更多发展。革新的本质注定了我们很多主意都不会成功。但是机会仍在这里,朋友们,我们都是王者。

好消息是,这个黄金时代让你成了现在的开发者,并还将继续帮助你。更好的消息是你还有机会将一直向前走。

第一步是“Following”。懂得“Following”的开发者可以始终保持活力。因为他们在工作中使用开源软件,并将自己加入到邮件列表中,以及时获得最新技术消息,同时还会参加本地技术活动及阅读Github上的说明文档。任何技术“跟随者”的数目在很大程度上暗示着该技术的流行程度。

下一步即贡献。贡献代码、点子、经验等,帮助构建好的开发生态环境。简言之,这包含在Github上提交一个小的“Pull Request”,也包括在技术会议上发表一个演讲。我说的虽然很简单,但首次做这些事情还是很困难的。一旦做了第一次,你就会觉得它们并不难。再小的贡献都是伟大的。最近,我在Github上提交了我首个“Pull Request”,它整理了“Twitter引导程序”中缺失的一些HTML属性。我鼓起了所有的勇气才提交了它。

最大的挑战是“领导”。听起来很难,实则不难。其实它仅是“贡献”的一个延伸。如果你做出了重大的贡献,那你自然就会成为一个领导。像“_why” “DHH”“notch”都是我们熟知的著名领导者,但还有很多是我们所不知道的。任何在Github中开源新项目、组织过技术活动、写过多篇流行博文的人都是这个领域的领导者。

我在这里只说这几个阶段。如果你知道自己现在所处的阶段,我鼓励你想想如何更上一层楼。无论你属于哪种类型的开发者,你都将从中获益。不停晋级,不断让自己满意,还会提高自己的名望。我提交的那个关于Twitter的“Pull Request”让我有机会在Twitter公司享受一顿免费的午餐,还获得了一件T-shirt。

其实,真正的获益是,帮助整个系统更加智能、更加快速。大家共赢。

原文链接:The Golden Age Of The Developer

商界传奇Bill Gross:我从创办的100多家公司中学到了什么

Bill Gross是一位具有传奇色彩的商界精英,他从12岁便开始创业,到目前为止共创办了100多家公司,覆盖了各行各业。可以毫不夸张地说,他是历史上最成功的企业家之一。前不久,他在巴黎召开的LeWeb大会上分享了自己的创业心得和感悟,希望对创业者有所启发。

1. 把握并顺应行业发展趋势

要想成功经营一家公司,你可以做很多事,但有一件事如果你能很好地把握的话,它能在你不做任何事的情况下就能推动你走向成功,这就是顺应行业的发展趋势和脉搏。在20世纪70年代,太阳能行业开始迅速起飞,于是我抓住发展机遇创办了自己的第一家公司Solar Devices,并获得了很大的成功,当时我还在上10年级。我从这件事中学到了人生中非常重要的一课:把握并顺应行业发展趋势,这是在你走向成功的过程中的重要助推器。

2. 掌握演示和销售产品的技巧

要学会如何向别人演示和销售产品的技术,我在大学销售自行设计的高端扬声器的过程中就学会了演示技巧。演示技巧在我之后创办经营的所有公司中都发挥了非常重要的作用,这门技巧可以算作是我学到的最有价值的东西之一。不要将演示技巧视为小儿科,要努力学着去真正掌握它,因为无论你经营什么样的公司,这门技巧都是不可或缺的。

3. 要对自己的想法充满激情

很多人都知道苹果背后的故事,但很少有人知道迪斯尼背后的故事。在华特.迪斯尼快要破产的时候,他推出了挽救公司的“白雪公主”;之后,迪斯尼乐园的推出再一次挽救了处于困境中的公司。每一家公司都会面临很多艰难的挑战,要想克服这些挑战,你就必须对你的想法有十足的激情。

4. 专注、专注、再专注

无论做什么,能做到专注总是好的。一开始我也担心自己专注的方向不对,但事后结果却表明,即使你专注的方向错了,因为专注,你也会比以前做到更好。如果你能将自己专注的事情做得非常好,那么你就能与用户建立起紧密的联系。专注也是我在经营所有公司的过程中自始自终坚持的原则。

5. 认清自己的长处和不足

对自己的长处要认清,对自己存在的不足也必须敢于承认,并通过雇佣那些可以弥补你自己存在的不足的人来达到一种平衡。我本人其实并不是一个非常专注的人,我想做的事情很多,但一个公司要想成功,它就必须专注。在经营Idealab孵化器时,我就雇佣了很多能弥补我个人存在的不足的员工。

6. 千万不能冒进

我们在1997年创办了eToys,在当年的圣诞购物季,公司的销售额已达150万美元,第二年的销售额大1000万美元,第三年5000万美元,接着公司上市。为了实现所有地区一日内发货的目标,我们在全国范围内建立了很多仓储中心,上市第二年,公司销售额达1.6亿美元,但这远没有达到公司3亿美元的产品供货能力,公司因此垮了,给我留下了一个惨痛的教训。因此,千万不能冒进,世界变化很快,扩张步伐最好慢下来,虽然这可能会给公司的短期利益造成一定影响,但这远比公司扩张太快而导致破产好得多。eToys就是一个血的教训。

7. 在产品市场成熟之前,要确保公司能够存活

在1999年,我创办了在线娱乐网站Z.com。那些的宽带普及率仅为10%,但我们相信宽带的普及率会很快增加。我们成功融资1000万美元,网站带来的效益也不错,因此我们雇了110名员工。然而,由于宽带普及速度太慢,我们便将公司员工数裁至46名,第二年只剩下20名,最后只剩下12名员工,最后的最后,公司因资金短缺而宣告破产。

从这个例子中我们发现,如果你推出了一个用户很喜欢的不错的产品,但产品市场还没有成熟的话,在这种情况下,你就必须尽力精兵简政、削减开支,保证公司能存活到产品市场成熟之时。如果我们当时能够将110名员工一次性裁至12名,那么公司很有可能会存活的。我们的反应太慢了。

8. 测试、测试、再测试

1999年,我创办了在线汽车销售网站CarsDirect,人们那时对此表示怀疑,在网上买汽车安全吗?CarsDirect上线的第二天,我们就收到了4份订单,接着我们很快将网站关闭(因为我们必须以零售价的价格买进4辆车再亏本卖出去),但这证明了这种模式的可行性。之后我们便开始真正做起了这么一家网站和公司。从这个实例中我们可以看出,在真正推出产品之前,要想办法将产品在用户中进行测试,再根据用户反馈对产品进行调整。在不确定模式的可行性之前不能花费太多的钱。

9. 如果你真有什么好的想法,一定要坚持

如果你有什么好的想法,一定要坚持,不要理会那些批评者的声音。很多批评者都不看好我的很多商业想法,但我知道自己想法的价值所在,因此我一直在坚持着,同时,我也用行动证明了想法的正确性,这也是创业者必须要学会的东西。

10. 寻找合适的合作伙伴

eSolar是一个费时费力的项目,在创办和经营eSolar的过程中,我们遇到了很多挑战。我们急需大量的资金和土地,我们不得不寻找合作伙伴,因此我们与GE建立和合作关系。由此可以看出,如果要实现你的宏伟的商业想法需要巨额的资金支持,那么你就必须找到适合的合作伙伴。我强烈建议,在公司经营的过程中,如果你发现公司需要合作伙伴的话,那么寻找合作伙伴便是当务之急、重中之重。

11. 利用好用户的热情

在如今的媒体时代,你必须学会如何利用已有用户为自己带来新的用户,让用户为公司的产品做宣传,形成良好的口碑效应。如果掌握了这门学问,这将对公司大有裨益。

12. 一切真理都必须经历3个阶段

一切真理都必须经历三个阶段,首先是想法遭嘲笑的阶段,其次是想法遭强烈反对的阶段,最后是想法被认为是理所当然的真理的阶段。想想这个问题:一个具有突破性的想法在一开始都会被认为是疯狂的想法,要想将自己所谓的疯狂的想法变为理所当然的真理,你必须要勇于面对所有的嘲笑和反对。在苹果Think Different的广告中有这样一句话:那些你认为足够疯狂的人才是能够真正改变世界的人。

via BI

来源:http://www.36kr.com/p/69958.html

菲尔测试,看看自己是什么类型?

一、菲尔测试题
1、你何时感觉最好?
A早晨 B下午及傍晚 C夜里

2、你走路时是
A大步地快走 B小步地快走 C不快,仰着头面对着世界 D不快,低着头 E很慢

3、和人说话时,你……
A手臂交叠站着 B双手紧握着 C一只手或两手放在臀部 D碰着或推着与你说话的人 E玩着你的耳朵、摸着你的下巴或用手整理头发

4、坐着休息时,你的……
A两膝盖并拢 B两腿交* C两腿伸直 D一腿蜷在身下

5、碰到你感到发笑的事时,你的反应是……
A一个欣赏的大笑 B笑着,但不大声 C轻声地咯咯地笑 D羞怯的微笑

6、当你去一个派对或社交场合时,你……
A很大声地入场以引起注意 B安静地入场,找你认识的人 C非常安静地入场,尽量保持不被注意

7、当你非常专心工作时,有人打断你,你会……
A欢迎他 B感到非常恼怒 C在上述两极端之间

8、下列颜色中,你最喜欢哪一种颜色?
A红或橘色 B黑色 C黄色或浅蓝色 D绿色 E深蓝色或紫色 F白色 G棕色或灰色

9、临入睡的前几分钟,你在床上的姿势是……
A仰躺,伸直 B俯躺,伸直 C侧躺,微蜷 D头睡在一手臂上 E被子盖过头

10、你经常梦到自己在……
A落下 B打架或挣扎 C找东西或人 D飞或漂浮 E你平常不做梦 F你的梦都是愉快的

二、 菲尔测试题得分标准
经过上述十项测试后,再将所有分数相加:
1、A2 B4 C6
2、A6 B4 C7 D2 E1
3、A4 B2 C5 D7 E6
4、A4 B6 C2 D1
5、A6 B4 C3 D5
6、A6 B4 C2
7、A6 B2 C4
8、A6 B7 C5 D4 E3 F2 G1
9、A7 B6 C4 D2 E1
10、A4 B2 C3 D5 E6 F1

三、 菲尔博士的分析
将上述十项测试题的得分相加后,再照后面的分析:

低于21分:内向的悲观者 大多数公司不喜欢这类性格。
你是一个害羞的、神经质的、优柔寡断的人,永远要别人为你做决定。你是一个杞人忧天者,有些人认为你令人乏味,只有那些深知你的人知道你不是这样。

21分到30分:缺乏信心的挑剔者 适合编辑、会计等数字和稽核工作。
你勤勉、刻苦、挑剔,是一个谨慎小心的人。如果你做任何冲动的事或无准备的事,朋友们都会大吃一惊。

31分到40分:以牙还牙的自我保护者 有最广泛的适应性。
你是一个明智、谨慎、注重实效的人,也是一个伶俐、有天赋、有才干且歉虚的人。你不容易很快和人成为朋友,却是一个对朋友非常忠诚的人,同时要求朋友对你也忠诚。要动摇你对朋友的信任很难,同样,一旦这种信任被破坏,也就很难恢复。

41分到50分:平衡的中道者 适合人力资源工作。
你是一个有活力、有魅力、讲究实际,而且永远有趣的人。你经常是群众注意力的焦点,但你是一足够平衡的人,不至于因此而昏了头。你亲切、和蔼、体贴、宽容,是一个永远会使人高兴、乐于助人的人。

51分到60分:吸引人的冒险家 适合市场开发与销售工作,适合独当一面。
你是一个令人兴奋、活泼、易冲动的人,是一个天生的领袖,能够迅速做了决定,虽然你的决定不总是对的。你是一个愿意尝试机会、欣赏冒险的人,周围人喜欢跟你在一起。

60分以上:傲慢的孤独者 通常很有才华,但与人沟通功夫欠佳,可做研发指导工作。
你是自负的自我中心主义者,是个有极端支配欲、统治欲的人。别人可能钦佩你,但不会永远相信你。

大家的测试结果如何啊?

东京机器人展览会(International Robot Exhibition)_工业机器人部分

谢谢大家的捧场!现在发一下工业机器人的部分,我感觉比服务机器人这次的工业机器人真是令人震撼,也可能是我以前不太关注工业机器人的原因吧!总得说工业机器人已经发展到:超大型、多臂动态协作、多环境和人机协作的阶段!这次就不单图的说明了太累!请大家谅解!下面开始:

工业机器人:

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分


东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分
一个机器人给另一个机器人拆卸身体!自己琢磨去吧……

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

东京机器人展览会(International Robot Exhibition)_工业机器人部分

工业机器人基本发完了!谢谢大家!

让我们一起共同为中国的机器人事业、中国的工业技术发展、中国的科学技术发展做出我们的贡献!!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

11月去东京看了一下International Robot Exhibition感觉还是不错的!主要是工业机器人和服务机器人部分!工业机器人看完了感觉很震撼已经发展到了冗余自由度、多种机械结构、多操作臂的动态协作等等方面。而在展会上的服务机器人就有点良莠不齐了很多还是一些实验级别的东西,实用的机器人以遥控操作居多,智能性和自主性差。这些服务机器人大多是日本的也许不能完全代表欧美的先进产品。但是一些著名的服务类机器人也得到了展示。

下面就看看这些展览会中的图片吧:

服务机器人:

东京机器人展览会(International Robot Exhibition)_服务机器人部分

可穿戴的康复机器人

东京机器人展览会(International Robot Exhibition)_服务机器人部分

高速同步电机两个电机同时高速运转,但是始终保持同步致使在两圆盘的交叉处的孔一直保持通透显示出”M”的图案

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

机器人爬梯子

东京机器人展览会(International Robot Exhibition)_服务机器人部分

倒立摆机器人我试着用手推他,但是他会相应的调整位置确保稳定不倒。用的传感器是陀螺仪(Gyroscope)

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京理工大学的仿人机器人,一会会有更震撼的

东京机器人展览会(International Robot Exhibition)_服务机器人部分

这个做的也是有问题控制的精度很一般,但是图片上的那个人还和我扯淡哎

东京机器人展览会(International Robot Exhibition)_服务机器人部分

类似于骑马的机器人,那个缰绳控制两个电机这样达到驾驶的目的。做的很简单但是想法不错

东京机器人展览会(International Robot Exhibition)_服务机器人部分

纳米操作机器人可以用手柄控制实际和仿真操作!我还玩了玩!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

一种红外线点阵传感器,可以对近距离目标检测。但是距离非常近会失效

东京机器人展览会(International Robot Exhibition)_服务机器人部分

模拟赛马的机器,前面有个大的显示屏模拟起码的场景

东京机器人展览会(International Robot Exhibition)_服务机器人部分

一个并联关节装置

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分
灵活关节

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

日本电气大学做的,感觉上很酷但是视觉有很大问题。它抓取物体的时候我故意摇摇手机器人就废掉了

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

著名的可行走的美女机器人,这个就是把前几个著名的日本机器人结合了一下但是也只是在Show的层面!不实用!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

这个是类似于Kinect的深度传感器,但是比较贵了

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

这个我感觉做的不错!最上面的是个力传感器然后人可以通过它控制机器人行走的方向来带货物。但是因为地盘不是全向轮所有在变向的时候显得很突然。

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

这个也是电气大学的东西,壁障都很费劲但是轮子的结构有些特点并且也有Kinect,一会大家会发现Kinect现在很流行

东京机器人展览会(International Robot Exhibition)_服务机器人部分

多足机器人,多足协作搬运东西

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

核环境操作机器人,可以看到也有Kinect

东京机器人展览会(International Robot Exhibition)_服务机器人部分

我感觉很SB的想法,人在车上走,车在地上走!哎!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

著名的海豹机器人

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

可穿戴的医疗机器人

东京机器人展览会(International Robot Exhibition)_服务机器人部分

这个是中国人在日本做的,感觉Idea不错,其实就是利用激光测距。这个性能感觉也一般

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分

KUKA的移动机械臂,我还让洋妹妹帮我和它拍了照呢!哈哈!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

这个不太懂大家自己看吧

东京机器人展览会(International Robot Exhibition)_服务机器人部分

这个是用直线电机实现的!

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分

还是可穿戴的康复机器人

东京机器人展览会(International Robot Exhibition)_服务机器人部分

仿的美国的

东京机器人展览会(International Robot Exhibition)_服务机器人部分

一个看似很酷的扯淡机器人

东京机器人展览会(International Robot Exhibition)_服务机器人部分
又一个

东京机器人展览会(International Robot Exhibition)_服务机器人部分

仿美国的清扫机器人

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分

消防机器人,但是是遥控的

东京机器人展览会(International Robot Exhibition)_服务机器人部分东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

这个就是用穿戴在人身上的传感器来控制后面的机器人,实时性一般!并且我的研究方向要比他先进很多至于哪里先进请关注…

东京机器人展览会(International Robot Exhibition)_服务机器人部分

这是可穿戴式的Mark 我的研究也是要比这个先进的!哈哈!

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分

这个就是我说更震撼的了 这个仿人机器人可以通过语音识别来做出张嘴、转头等动作,它的应用是为了医学学生提供牙科训练!做的不错!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

这个做的也不错,但是不知道有没有更详细的东西

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分

导盲机器人,以前我也想做来的!只不过我的野心更大要室外的!但是…哎!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

一些所谓的研究平台

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分

办公室的洗尘机器人

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

一个开发平台,但是问题多多,站立都是问题!说是有API但是我忘问控制器是什么的了!也许我可以解决一些问题!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

我研究的比他的要先进!哈哈!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分

这个机器人有些实用性,但是不知道能实用到什么程度

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

又是Kinect

东京机器人展览会(International Robot Exhibition)_服务机器人部分
扯淡的

东京机器人展览会(International Robot Exhibition)_服务机器人部分

衣服模特机器人,不错!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

仿美国的

东京机器人展览会(International Robot Exhibition)_服务机器人部分不知道是什么
东京机器人展览会(International Robot Exhibition)_服务机器人部分

运动捕获系统,很贵的!那个亮点实际看着时不亮,应该是特殊光线吧!我的研究比他好!

东京机器人展览会(International Robot Exhibition)_服务机器人部分
仿美国的

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

不知道是真正的还是仿的!我也试了一下

东京机器人展览会(International Robot Exhibition)_服务机器人部分

智能轮椅,但是不是自主的哎!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

好像是它!!和Kinect一样的原理但是便宜不少!不错!

东京机器人展览会(International Robot Exhibition)_服务机器人部分

又一个扯淡的!语音交互都不行!

东京机器人展览会(International Robot Exhibition)_服务机器人部分电机

东京机器人展览会(International Robot Exhibition)_服务机器人部分

一个语音交互的只能听懂这些

东京机器人展览会(International Robot Exhibition)_服务机器人部分

教小孩子学习的,谁教他呢?

东京机器人展览会(International Robot Exhibition)_服务机器人部分

韩国做的引导机器人,语音交互正在做

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
电机

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
医疗康复机器人

东京机器人展览会(International Robot Exhibition)_服务机器人部分
仿美国的倒立摆


东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分

能进行少量的语音交互

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
小型水下机器人

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
这个很帅

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分

中间应该是传感器吧?

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
纳米操作机器人,我用手柄试了一下!不错!
东京机器人展览会(International Robot Exhibition)_服务机器人部分
数据手套
力传感器,带成像的

东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分
管道机器人

东京机器人展览会(International Robot Exhibition)_服务机器人部分
东京机器人展览会(International Robot Exhibition)_服务机器人部分

东京机器人展览会(International Robot Exhibition)_服务机器人部分
好像重复了

东京机器人展览会(International Robot Exhibition)_服务机器人部分
荡秋千

东京机器人展览会(International Robot Exhibition)_服务机器人部分
又是Kinect

东京机器人展览会(International Robot Exhibition)_服务机器人部分

OK!服务机器人基本就这么多!下帖再发工业机器人部分吧!关注!哈哈!

虚拟机安装的Mac OS X雪豹如何升级到Lion

通过“软件更新”从10.6升级到了10.6.8,但是没法用这种方式升级大版本:10.6到10.7。
找了个Lion的dmg安装文件,直接安装Lion,结果安装完,登录后一看,还是:10.6.8:

he-yuanhuimatoMac:~ hyh$ more /System/Library/CoreServices/SystemVersion.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>ProductBuildVersion</key>
        <string>10K549</string>
        <key>ProductCopyright</key>
        <string>1983-2011 Apple Inc.</string>
        <key>ProductName</key>
        <string>Mac OS X</string>
        <key>ProductUserVisibleVersion</key>
        <string>10.6.8</string>
        <key>ProductVersion</key>
        <string>10.6.8</string>
</dict>
</plist>
he-yuanhuimatoMac:~ hyh$

为虾米涅?

iPhone程序真机调试

傻瓜教程:把Iphone程序连接真机调试  : http://dhlinyi.blog.163.com/blog/static/929475782010324115912387/

非常详细,值得参考

另外,这儿有个真机调试程序的,省99刀,不知道后来的sdk还能不能用这个方法了:

http://bbs.weiphone.com/read-htm-tid-222380-page-1.html

解决 undefined reference to `_uncompress’ `_compress’问题

在eclipse+CDT+mysql环境下编译项目,出现如下错误:

Building target: dbdeal.dll
Invoking: Cygwin C++ Linker
g++ -L”C:\cygwin\code\trunk\Utility\Debug” -L”C:\cygwin\code\trunk\log\Debug” -L”C:\cygwin\usr\local\lib\mysql” -shared -o”dbdeal.dll” ./LoadSticTable.o ./ParseCommand.o ./SQLQuery.o ./TableModels/TabBase.o ./TableModels/tabAnalysisData.o ./TableModels/tabCmdBuffer.o ./TableModels/tabDevice.o ./TableModels/tabFirmware.o ./TableModels/tabRawData.o ./TableModels/tabUser.o ./TableModels/tabWarningRecord.o -lUtility -llog -lmysqlclient
C:\cygwin\usr\local\lib\mysql/libmysqlclient.a(my_compress.o):my_compress.c:(.text+0x5f): undefined reference to `_uncompress’
C:\cygwin\usr\local\lib\mysql/libmysqlclient.a(my_compress.o):my_compress.c:(.text+0x1aa): undefined reference to `_compress’
collect2: ld returned 1 exit status
make: *** [dbdeal.dll] Error 1

?
网上找了很多关于‘undefined reference to `_uncompress’’的问题,但都很草草的说给gcc添加‘-lz’参数可以解决问题日,但是问为啥,都说不出个所以然来。
很多都是命令行编译,而我用的是eclipse,makefile动态生成,所以去修改makefile是不明智的,只能从配置入手。
在项目上右键—>属性,出现属性对话框,到‘Cygwin C++ Linker’项下的‘Miscellaneous’里的‘Linker flags’输入参数‘ -lz’:

编译看看,发现-lz参数被直接串在了lib库查询路径的后面,而不是mysqlclient的后面:

g++ -L”C:\cygwin\code\trunk\Utility\Debug” -L”C:\cygwin\code\trunk\log\Debug” -L”C:\cygwin\usr\local\lib\mysql” -lz -shared -o”dbdeal.dll”

所以‘-lz’参数对mysqlclient不起作用。
其实在‘Expert settings’中有个‘Command line pattern’的设置:

${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}

其中的‘${FLAGS}’变量就是上面设置‘-lz’参数的‘Linker flags’,解决办法出来了:把 ${FLAGS} 挪到 ${INPUTS} 之后,问题解决:

eclipse+CDT+cygwin编译出错:cannot execute binary file

编译一个C++程序,出现如下错误:

**** Build of configuration Debug for project dbdeal ****

make all
Building file: ../LoadSticTable.cpp
Invoking: Cygwin C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF”LoadSticTable.d” -MT”LoadSticTable.d” -o”LoadSticTable.o” “../LoadSticTable.cpp”
cygwin warning:
MS-DOS style path detected: C:\cygwin\code\trunk\dbdeal\Debug
Preferred POSIX equivalent is: /code/trunk/dbdeal/Debug
CYGWIN environment variable option “nodosfilewarning” turns off this warning.
Consult the user’s guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
/bin/sh: /usr/bin/g++: cannot execute binary file
make: *** [LoadSticTable.o] Error 126

注意最后两句是:

/bin/sh: /usr/bin/g++: cannot execute binary file
make: *** [LoadSticTable.o] Error 126

就是无法运行g++。
今天早上开机后直接启动eclipse,启动过程中提示”由于与64位版本的Windows不兼容,此程序或功能’\??\C:\cygwin\bin\g++.exe’无法启动或运行。请联系软件供应商询问是否有与64位Windows兼容的版本”,对话框标题竟然是“不支持的16位应用程序”,这下知道为什么eclipse总是编译出错了,g++是16位的版本,在windows 7 的 64 位机器上根本运行不了。

我在安装cygwin时把devel下的东西全装上了,就是用于开发的gcc、g++等编译工具都安装上了,所以在cygwin\bin目录下你会看到g++.exe、g++-3.exe、g++-4.exe至少3个g++版本,这下可以理解为什么了,cygwin安装编译器后默认用最老的那个g++版本作为默认编译器,也就是最老的16位g++.exe!

解决问题:

很简单,在cygwin\bin下找到g++.exe,改名为g++_bak.exe,把g++-3.exe拷贝一份,改名为g++.exe作为默认编译器。

再次编译程序,OK了。