Shell's Home

apache2服务器证书生成过程

Dec 6, 2005 - 1 minute read - Comments

首先为 CA 创建一个 RSA 私用密钥 openssl genrsa -des3 -out ca.key 1024 利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构) openssl req -new -x509 -days 3650 -key ca.key -out ca.crt 首先为你的 Apache 创建一个 RSA 私用密钥 openssl genrsa -des3 -out server.key 1024 用 server.key 生成证书签署请求 CSR openssl req -new -key server.key -out server.csr 签署证书 openssl x509 -md5 -days 3560 -req -signkey server.key -CAcreateserial -CAserial ca.crt -in server.csr -out server.crt 最后apache设置,将下面的参数改为 SSLCertificateFILE /usr/local/apache/conf/server.crt SSLCertificateKeyFile

无溪游记一

Dec 6, 2005 - 1 minute read - Comments

蛮爽的,上星期刚刚去好临安,这星期又去无溪。虽然这次只有一天还要自己付钱,不过有的玩总归比没的玩爽。说到无溪,就不能不提无溪的紫砂,糖醋排骨,大阿福。其中外婆严厉警告我,如果买糖醋排骨回来就自己消受掉。因为对于我们来说,那个东西太甜了。 我们预定了两个地方,一个先去灵山大佛那里拜佛。这个对小一正合适,毕竟他学佛的。俺学道的,不过也没啥冲突,看看无妨。进门的地方蛮漂亮,不过后面写的几个字完全不认识。不像是中文,倒像是藏文梵文一类的文字,看上去和中东印度一脉的文字很像。我在那里开玩笑是“欢迎光临”或者是“下次再来”,不过想也知道佛门地方不会有这种搞笑事情出来。门后是一座牌坊,前面看的到是“布施”“持戒”“忍辱”,后面小一就和我打赌是“禅定”“精进”“般若”。当然,对他说中我是没有啥异议啦,不过念佛的人可以和人打赌吗? 门口的请香处很“热闹”,毕竟大家不是出家人,六根清净无欲无求。佛能不能保佑你是另外一回事,不过烧香至少能烧个心里清净,这种地方说明白了就是花钱买个安心。所以还是老老实实请了香去烧。 在转经处中间是九龙灌浴的设备,我们去的时候有,不过没有看,准备回来的时候看。所以就在转经回廊上面去转经。所谓转经就是用手去推动一个个大的金属桶,上面刻有经文。据说这样会成倍的获得福报。福报来了没有我不知道,不过手快断了到是真的。从下至上的结构很有意思,都是中轴对称。从山门开始中轴一直到佛祖脚下,都是正的南北走向。而且东青龙西白虎,南玄武北朱雀(这个反过来,不知道啥意思)。左右对称而不完全一致。九龙灌浴的上面是天下第一掌和百子戏弥勒,天下第一掌纯粹就是灵山大佛手掌的微缩版,放到下面来而已。百子戏弥勒到有点意思,不过介绍上语焉不详,不知道有什么典故或者意义。这两个也是左右对称的,再上面就是大雄宝殿了。 一般寺庙中基本都有大雄宝殿,结构也很经典,就不多说了。越殿而前,是佛祖面前的上百级阶梯。不知道是否佛祖要考验我们这些前来朝拜的,但是要抱佛脚要受的考验绝对出乎你的意料。首先是交15块的佛博览馆费,然后要穿越长长的回廊。我们去的时候空旷如野,但可想见节前人头篡动,摩肩接踵,大家焦急等待,艰难前行的情景。上去拜佛的时候通道修的很低,说明是拜佛要心诚,先低头。最让我们吃惊的是佛祖脚下居然还有条专门卖东西的回廊。这到是让我们了解了什么叫做做生意。这种情景让我想起原来的一个笑话。一个美国商人找到罗马教皇,说要捐献一百亿美金。教皇拒绝了,因为商人要求教皇祈祷结束的时候说:哦,可口可乐。 去看九龙灌浴前还有人庆幸,说还好没有下雨。我说话要分两层说的,没有下雨叫显灵,下了雨叫考验。结果去看的当时下雨了,你自己挑合适的话说吧。九龙灌浴是很壮观没错啦,看的也很爽啦。问题是淋的相当厉害,连相机都淋湿了。而且还没有找到组织,因此没有给别人留下很多照片,比较遗憾。 临走前我内急去了次厕所,谢天谢地这种地方也有厕所。当真是,佛门清净地,大开方便门。

AS3下安装resin出错

Dec 6, 2005 - 1 minute read - Comments

make不通过 出错如下 clude/linux -I../common -DCPU="i386" -DOS= -c -o ssl.o ssl.c In file included from /usr/include/openssl/ssl.h:179, from ssl.c:62: /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory In file included from /usr/include/openssl/ssl.h:179, from ssl.c:62: 解决方法: export LOCALDEFS="-DOPENSSL_NO_KRB5" export C_INCLUDE_PATH="/usr/kerberos/include" 引用自http://www.thinkjam.org/meteor/archives/2005/04/as3resin.html

临安青山湖,浙西大峡谷。二

Dec 2, 2005 - 1 minute read - Comments

当晚我们跑到临安的一家宾馆住了一个晚上,宾馆的名字叫聚贤。不知道金庸大侠是否去过那里。宾馆分配的时候李兄正好在对门,结果整个晚上我都在吃她带的各种东西。貌似上次去嘉年华的时候也是一样……汗一个先。和我住一起的是柏菊的男朋友,做芯片封装的。总算有个同志可以谈谈电脑了…… 第二天去的是青山湖,来的时候就是从那里过来的,风景还是非常不错的。我们乘一个小船去看据说当年尼克松带来的红杉树,现在那里已经是最大的水上森林了。不过可惜的是现在是枯水期,所以看不到水上森林,而且船也开不过去。不过也正是因为枯水期,我们跑到了湖中央的滩涂上去玩。导游也说这是他头次跑到滩涂上面,因为枯水期根本没有什么人会走这条线路。奇怪的是滩涂上还有一个破破的帐篷,不知道什么人在那里搭的……汗…… 青山湖游完就不知道跑哪里去玩了,所以干脆跑到旁边的草地上烤肉玩扑克。我们没有啥烤肉经验,烤的时候没有放油。整个肉都烤的外黑内红,根本不能吃。最后我们问边上的人借了点油解决这个问题,当然,肯定是有借没有还的……嘿嘿……我也在上面烤,而且工艺是最特殊的。别人烤肉都是串一串,然后去烤。我是拿一块,然后用烤肉签去翻它。所以烤肉签不容易烧断掉,而且翻动频率也比较高,烤的非常均匀。相反烤一串的要么签烤断了,要么没有熟,总之都不能吃。不过吃好东西是有后遗症的,我们烤的是兔子肉,又不一定熟。害我上火N天,牙痛肚子痛。李定婷同志怎么没事呢? 下午就是回程了,没有啥意思,不过车上N多人在唱歌。李定婷还在那里评论这个歌怎样,那个歌怎样。再后来就讲到吉他和小提琴了,包括conan和romance。我还把conan的旋律唱错了,脸红一个。中途下过一次车,导游让我们去一个房间喝菊花茶,估计是外快性质的啦。不过这种东西也是太公钓鱼的事情。杨总买了点杭白菊,感觉蛮实在。我要是早知道这两天上火,我也买了。 最后就是跑到上海后的事情了,李定婷想直接在高架上下车,然后走就走的回家了。不过想也知道那是不可能的。还是要跑到人民广场去,买了两包翅膀尖,然后回家。感觉比N年前去杭州的时候好玩,主要是去杭州的时候可没有多于的时间让我们买东西……

电信机房参观

Nov 30, 2005 - 1 minute read - Comments

今天偶跑到上海电信机房去参观了,看里面的机器感觉真是爽阿。很多都是品牌机,拼装机都看着非常专业。绝对不是我们公司里面那种破烂机器能比的上的。问代理商,代理商说这是电信的1G光纤分流到户,每个机柜100M带宽,20个机器去分,每个用户不限制流量。因为我们用的那个机柜都是小流量的机器,所以保证我们10M没有问题。如果以后流量太大,也可以换一个接入,用专用的100M口。 偶们在公司里面估算过,假定一个页面调入,不计算图片等媒体,需要50K的网络数据传输。(这也是公司一般页面设计的大小)调入非媒体的时间假定在五秒不会让用户感觉到慢。这样一个用户连接就需要保持10K的带宽。10个用户就是100K,换成bps就是大约合0.8Mbps。图片一般都是静态的,所以只要跑一次,后面IE会自动看缓存。所以每次会耗用KeepAlive的Session大约250字节的数据,基本可以忽略。只是如果带宽空余点首次跑图片的时候比较快,如果不空就比较慢。到后面访问几乎没有差异。 按照供应商的数据,我们有可以至少支持125个页面并发。假定平均一个用户同时开启的页面是两个(有的人开新窗口来用的,还有部分是我们需要弹出或者页面内引用页面),那么就是支持60个用户并发左右,貌似够了。因为60个用户并发,假定每个用户等待加操作需要10秒/页面,而读取的速度是5秒/页面。那样峰值用户数就是120人。平均来说可以支撑最少1000个用户。 问题在于问题在于,杨总设计的业务流程中大量的使用了内嵌的office文件。经常要上传下载office文件。那么我们要把这部分的流量抽离开来使用。一个office文件平均100K,而用户静态数据区大小是100M。按照单次使用不超过总容量1/10的原则来计算,一次用户操作的最大空间就是10M合100个office文件。实际到是没有这么多,一般是5个上下。这样算来,用户需要在五分钟内上下传500K的额外数据。运气好的话只有两个的客户在做这个东西,那么就是6Mbps的速度要求! 我们在假定了两个客户同步做上下传的前提下,还得到这种惨淡的结果。要我们支撑120个同步用户至少需要20Mbps以上带宽。不知道这个系统在后面还怎么经营下去…… 算了,那个也不关我事,至少目前不关。到是服务商的收费理由让我感到很有趣。他说他收费贵是因为机房建立的比较好。电池是专门的在线UPS,大楼有备用的发电设备,灭火器是干粉的,大厦是抗震的,所以比较贵点。这些理由怎么样不说啦,至少让我开了眼界…… 回来的时候碰到件妖怪的事情。我不知道怎么回去,正好和陈工的981顺路,所以一起回去。结果车等了很久,上去人很多。开了没多久,发现熄火。司机关掉机器再开,启动不了。然后狂踩离合器,汽车居然跑的动了。虽然速度奇慢,不过让我觉得很神奇……

临安青山湖,浙西大峡谷。一

Nov 29, 2005 - 1 minute read - Comments

这次公司准备去旅游,我们去的目的地是临安。本来准备叫老妹同行,不过她不去(具体啥原因就不深究了)。所以干脆叫上李定婷同志,啥时候还能拉一个曲子(笑……)。 临行前李定婷同志充分展现了她坏事大于做事三倍的功力,把我和我们耍的够呛。我早猜到她会睡懒觉,所以提前准备了morning call。不过她居然关机,然后安安心心睡到六点。放我鸽子有够彻底。这也就算了,毕竟人家还肯拉车过来,也就不计较了。不过她拉车的方式比较特殊,不是从高架上面走最近路线,而是先乘个渡轮乘掉20分钟再说。我对此在紧急情况下的气定神闲表示十二万分的敬意。最后搞的我左右赔不是,尴尬的要死。 李定婷MM充分的展现了她吃东西的功力,路上就看到我们在说话和吃各种东西,除了水。而且她拿来的各种东西都很好吃,据说还很便宜,不知道为什么那么有口福,偶羡慕。车上开了五个多钟头,以前陪老爹乘各种怪车子已经习惯了。毕竟我已经过了上车上吐下泄的年龄,何况这次又有MM在边上。不过同行的四个小毛头就倒了大霉,一个吐了一个拉了。我们中的某人路上说小孩最好,让大人抱着满山跑。照我说小孩最痛苦,看又看不懂,还要忍着不吐,憋着不拉。弄个不好还感冒发烧啥的,大人小孩一起倒霉。 浙西大峡谷是我们观光的头个景点,行程在头天下午。汽车开到一处鸟不生蛋的地方,然后换个小车再开。起初我们不解其意,后来看到狭窄出两车交错的惊险,顿觉一身冷汗。再回想我们的大车,均有戚戚然之心。俗话说天堂非乐土,乐土非天堂,里面越是人烟罕至的地方越有意思。开始是一个小水谭加些干涸的河道。相比起来还是石壁上的如链如帘四个字更有吸引力。后来我们贴河道而行。现下正是枯水期,走过河道旁的时候可以下到河底,拣石头踩沙子别有乐趣。凌空于河上的吊桥和边上的“禁止摇晃”更加深了我们的乐趣。我人很好的,不怎么忽悠别人。不过所有人中总有那么几个好事者,喜欢听别人和自己在忽悠中的尖叫。幸好太极拳颇见成效,扎下马步任尔随便恍,我自岿然不动。 山崖上的侗族舞蹈表演让我了解了旅游景点做生意的诀窍。先美其名送你小礼包请你参加游戏,然后给你“参观”下婚礼的仪式。当然人家姑娘不能白嫁人。入洞房之时就是主婚人问你要钱之时,你的小老婆还问你要彩礼钱。最嘲的是最后请你记得这里的小老婆,下次再来!当真佩服佩服。 最后的白马崖才是游山的重头。我们去的时候天色已晚,人迹罕至。从下走至上奇山怪石不断,风景独绝。走在山路上感觉和城市里的楼梯非常相仿,不过如果城市中有这种景色可看,有这种新鲜空气可享。那我定会早起三五分钟来多爬几层。最后费尽力气才走上白马崖顶的小亭。上面的古钟本应收费,不过时间已晚,管理员前去吃饭,白白便宜了我们。

debian上配置基于apache2的resin

Nov 29, 2005 - 1 minute read - Comments

别的不说了,先用debian自带的apt安装apache2,记得安装dev部分,还有libapr0,libapr-dev,libapr0-dev。千万别忘记安装后面的部分,否则你在下面编译的时候就要出现问题。 拿到resin,放在目标目录下面,然后tar -jxvf。完成后用ln -s做一个链接上去,使用resin的名字,这样可以方便的替换版本。然后在主目录下面运行./configure,make一下。一般来说,会出不少错误,最后生成一个libresin.so放到libexec下面,并且更新了resin的主执行程序。这个so很具有迷惑性,开始贝壳就被他骗了。这个so貌似是resin在本地平台下的加速程序,而不是嵌入到apache系列服务器中的整合插件。其中最大的差异是没有caucho_module导出符号,在apache加载的时候肯定会失败。 跑到src/c/plugins/apache2下面运行make。可能会报错,可能没有。贝壳这里报了错,不过贝壳运行configure的时候没有加任何参数,也许加了参数就正常了。如果不正常,出错的代码可能分别是httpd.h找不到或者apr_time.h找不到。运行vi Makefile,看到有INCLUDE的目录吗?那里面要包含/usr/include/apache2和/usr/include/apr-0两个目录,没有就肯定出错。好了,修改然后重新make。得到的文件是mod_caucho.so。将它cp到$RESIN_HOME/libexec下面,这个动态库导出了caucho_module符号。 在/etc/apache2/httpd.conf里面编辑一下,添加这个内容。 LoadModule caucho_module /usr/resin/libexec/mod_caucho.so <IfModule mod_caucho.c> CauchoConfigFile ......../resin.conf <Location /caucho-status> SetHandler caucho-status </Location> </IfModule> 在/usr/resin/conf/resin.conf里面,添加这些内容。 <doc-dir>/var/www/htdocs</doc-dir> <war-dir id='/var/www/htdocs'/> 在/etc/apache2/sites-available/default中可能要修改如下配置。 DocumentRoot /var/www/htdocs/ <Directory /var/www/htdocs/> 然后注销 RedirectMatch ^/$ /apache2-default/ OK,这样就基本完成了整个系统的整合配置。

quiz tree

Nov 25, 2005 - 1 minute read - Comments

提问1:2005年,你的野心是什么!!『出题人:狐狸』 找一个电脑公司发展 提问2:为以下物品撰写一句话。此物品为二锅头。『出题人:葵』 牛栏山 提问3:叙述你或者你想象中的最囧(jiong)的一次恋爱经历 限原创;字数250字以上。『出题人:栗子』 目前没有最囧,只有更囧。因为每次都是暗恋,然后失恋。 提问4:一天早上起来,发现自己身边的人都变成蛤蟆似的只会跳,只会呱呱叫,你怎么办?『出题人:鬼丸』 努力研究NLP,争取早日翻译蛤蟆语 提问5:如果发现自己最近衰到极点,你会怎么办?『出题人:星星』 读周易 提问6:请形容一下你理想(妄想)中的结婚场景吧。。包括结婚对象。『出题人:泡泡璐』 Dear and Be Lover, we gether here to celebrate this man and this woman lawfulholy wedding… 结婚对象可以是计算机吗?可以的话我选深蓝 提问7:如果你可以变成动漫/卡通里的角色,你想变成谁,说出原因。『出题人:猫猫HISA』 如果不计较性别,应该是天空之城的shuta。不过她是女的,所以还是AhMyGodness中的森里莹一好了。 提问8:初吻的地点,时间,对象。哈哈哈哈。。如果还没有,那希望跟谁?『出题人:叉』 这题的答案会害我被揍死,免了吧 提问9:最想到什麽地方定居。和谁一起去。以及原因。很简单的问题吧。『出题人:熊子』 可以和米特尼兹定居到MIT中心机房吗? 提问10:觉得人生对自己最重要的是什么?『出题人:lulu 』 我不大清楚“人生”是男的女的,不过“自己”应该是男的。所以最重要的应该是爱情吧。 提问11:你一觉醒来,发现全世界的人都看不见你,也听不见你说话,你会怎么办?『出题人:樱桃猫猫』 先去各个大学的中央机房上个机,弄几个账号,再去微软拿份源代码,最后去瑞士银行搬纳粹金条。 提问12:如果可以从机器猫(也奏是哆啦A梦)那里得到一样宝贝,你想得到什么?『出题人:小文』 不用别的了,机器猫可以给我吗?我想研究下主程序 提问13:如果重新让你选择一次已经过完的这段人生,你会想从什么时候开始?换句话说,你对自己什么阶段最后悔,想重新来过?『出题人:野孩子』 小时候,最小的时候 提问14:你最后一次ml是什么时候?跟谁? 『出题人:阿米』 这个问题恕不解答 提问15:你认为孙悟空和黑猫警长哪个更性感点?『出题人:假民工』 是男性的性感还是女性的? 提问16:死的时候你会送我什么?『出题人:benbenz』 周易吧 提问17:人为什么要识字?是为了活得漂亮一点,还是为了忧患?『出题人:sep』 为了可以操作计算机 提问18:你非常丑,只有你最爱的人爱你;你非常美,除了你最爱的人人人都爱你。如何选择?『出题人:半缘君』 很难选择,还是丑点好了。我很丑但是我很温柔。 提问19:你非常坚持个性,男/女友坚持你改变个性,如何权衡?『出题人:秋暮晨』 没有权衡问题,我念你听噢。你非常坚持个性,男/女友坚持你 改变个性。 提问20:最计较的一件事情?『出题人:一抹深蓝』 你可以拒绝,但是不能说谎 提问21:你认为自己真正爱过吗?『出题人:Lisa文文』 没有 提问22:用一种花、一种饮料来形容自己。『出题人:KK』 昙花,清水 提问23:坚持自我,真的那么重要吗?『出题人:Mizukii』 自我都没了,还做啥人 提问24:如果明天就世界毁灭,你会做些什么?!『出题人:可爱的33鬼娃娃』 先写个程序模拟下好了 提问25: 你会把心事藏多久? 出题者:KYO 多数事情不超过三分钟,但是有的事情一辈子 提问26:你觉得距离会让好朋友疏远吗?出题者:maomao 会 提问27:你觉得一个人的一生中哪一个年龄段是你最看重的?说下原因哦!『出题人:Eileen』 1-6岁,因为这个时候你遇到的事情决定你的性格,你的性格决定你的人生。 提问28:当你遇到不开心的事情时,你会用什么方法“自我疗伤”?『出题人:Rainbowdw』 读周易吧,这和上面的某题是相似的。 提问29:如果你中了500万彩票,你会怎样支出这笔奖金呢?[出题人:豆豆] 做一个远景预期,然后进行投资。 提问30: 你的理想是什么,你有多大决心去实现它?

Linux内存计数详解

Nov 24, 2005 - 1 minute read - Comments

又中计了…… 近几天用oracle,发现oracle狂用内存,经常内存小到10M的规模。汗一个,赶快让经理买了新的1G内存来装,上去后发现根本认不出来。加班一多小时才发现386内核根本不认高端内存(HIGHMEM),所以内存极限一直是896M。以前是1G内存,所以看不出来,现在换了1.5G,看出来了。 赶快上了一个2.6.12-1-686的内核,然后重启,认出来了。不过free还是只有32M左右,我们大惊小怪的打电话到oracle那里去咨询,得到的答复是要安装完整的补丁,并且要用oracle认证过的服务器。oracle认证了啥服务器?RedHatEnterpriseAS3/4,那个东西要收费的,而且绝对不便宜。最后无奈,做了一次不启动oracle的测试。出乎我们意料的,mysql吃了多数的内存。具体造成这种状况的原因是啥呢? 偶查阅了linux内存管理资料,发现linux的内存管理计数上讲的东西和windows讲的有很大差异。下面具体列举下几种计数、查看方式和含义。 total mem,可以用top free查看出来。 free mem,可以用top free vmstat查看出来。 used mem,可以用top free查看出来. buffer mem,可以用top free vmstat查看出来。 shared mem,可以用free查看出来。 swap mem,可以用top查看出来。 swap used,可以用top vmstat查看出来。 cached mem,可以用top free vmstat查看出来。 active mem,可以用free vmstat -a查看出来,即cached used。 inactive mem,可以用free vmstat -a查看出来,即cached free。 其中total mem是除去系统外的可用内存,系统大约占1M多。然后分配给free mem和used mem。used mem又包括了内核表使用(例如GDT),程序使用,buffer,cached。所以 cached mem=active mem+inactive mem total mem=free mem+used mem used mem=内核表使用+程序使用物理内存+buffer mem+cached mem 略去内核表使用,这个式子可以变形成这样: 程序使用总内存=swap used+程序使用物理内存 =swap used+used mem-buffer mem-cached mem =total mem-free mem+swap used-buffer mem-cached mem

C++语言跨系统编程

Nov 23, 2005 - 1 minute read - Comments

首先我们给这个话题增加一个基础,就是您的C++代码没有用到native的部分。具体哪些部分我会列出让你慢慢检查的,不过用到了还想跨平台,你做梦去吧…… 我们假定你代码是在windows的VC++下面写的,因为VC++的转换过去有点麻烦,反向的转换基本可以自动生成。 首先请检查你的头文件依赖性,如果是引用了标准的头文件,那么不需要额外的设定。一般g++的设置中都会自动设定标准的头文件和库。如果引用了某个自己写的文件,那么请检查相对路径是否正确。尤其请着重检查大小写。因为windows不会管大小写的,但是却会将大小写带入*nix。 另外VC++中有一个头文件预编译的加速选项,默认是开启的。将stdafx.cpp(which is empty)预编译次,就得到了stdafx.h的编译结果。在*nix里面我目前还不知道怎么支持,所以stdafx.cpp可以不用理会。 然后请检查标准函数,部分VC++声明在STDLIB.H中的函数其实是VC自带的。用这种函数的结果就是编译100%的失败。遇到这种函数可以自己写一个代替,反正一般都不是特别麻烦。 另外一般不需要关心数据类型和端点型,多数库文件中都会自动处理。不过两种情况需要手工干预。一个是程序中使用了windows特有类型例如DWORD或者linux特有类型le32。这样用typedef重新定义就好了。还有就是跨平台的时候连同芯片类别一起跨过去。这样就要手工确定所有库文件会自动处理数据类型,并且人工定义一组会使用的数据类型扩展宏来处理跨平台的问题。最明显的例子就是int在不同平台的大小问题,对此还有一个特殊的建议就是使用char short long来代替,这三者在所有系统上的长度是相同的。 下面是使用sh脚本来编译代码。其实可以使用make文件来做的,不过俺不会。所以用sh来做好了,反正一般跨平台的程序都不会过于复杂,凑合下就过去了。 g++的编译对象一般是cpp文件,如果是一般的可执行文件,那么编译的指令是g++ *.cpp -o oufile。我这次编译的对象是共享库,所以指令是g++ -shared*.cpp -o outfile。 g++处理extren的比较特殊。如果extren在编译成目标文件时还没有指定链接到哪个符号,那么g++就自动将这个定义为从动态库中引入。不过多数情况下,这应该会出错的。所以要多个cpp文件一起编译,或者使用-c编译到.o文件后再ld起来。否则单个cpp的编译结果根本无法使用。 如果需要使用少量native的方法,也可以按下面说的方法跨平台。 在VC++中定义一个win.cpp,其中将native的方法封装成函数。在主程序中使用C++标准函数和这些函数。 在linux中定义一个linux.cpp,然后用linux的native函数实现对应的函数。在编译的时候略过win.cpp。 VC++中工程引入的时候不要加入linux.cpp。 这样可以保证在两个系统下分别对应不同的函数,当然更好的方法是使用平台相关宏。 附录1,windows下的专有编程技巧: 使用了nativeAPI的绝对无法移植,它们有的甚至无法跨越2000/XP的差异。 使用windowsAPI的,一般不可以移植。这类API多数声明在windows.h中。 使用winsock的没有希望啦,要用socket2才可以。winsock的特征是WSAStartup。 使用了__try{的无法移植,而try{可以。前者是SEH的捕获模块,后者是C++异常捕获模块,在windows下异常捕获是用SEH实现的,不过linux下面不是。linux根本没有SEH。 使用了windows或者VC专用宏的无法移植。 使用C++库和std库的可以移植,包括cout。 使用STL可以移植,不过注意平台差异性。 附录2,linux项目在VC++中引入的方法。 新建一个工程,然后copy所有源代码到工程下面。再然后添加文件到工程,然后F7编译。over