Fox's profileFox涂鸦PhotosBlogListsMore ![]() | Help |
|
|
August 28 Doxygen在Cygwin下的使用
本文同步自游戏人生 ------------------------------------------------------------------- 我发现我最近成了Cygwin下的小白鼠,写完Cygwin下安装ACE,写ACE在cygwin下的使用。现在又写doxygen。 之前提到在Cygwin下读代码的不习惯,后来回到VS下看。没过几天,觉得VS下还是不够直观,于是就直接看ACE的doxygen了…… doxygen好是好,用起来还是要慢慢习惯才行,需要在写注释和代码的时候注意一些,掌握的细节和技巧越多,出来的文档越丰富(当然,这和代码质量是两码事)。 我自然是把doxygen安装在Cygwin下了,由于doxygen没有提供info,Info doxygen时就自动打开了doxygen的man,和man doxygen、doxygen --help一个效果。 如果希望阅读更详尽的使用方法,只有自己down一个manual了。 在Cygwin下,doxygen采用GNU的libiconv进行文字编码的转换,以UTF-8作为默认编码。 使用doxygen生成config-file模板后,可以在config-file中进行一些项目设置(有注释的,看的懂)。 为了支持中文,我DOXYFILE_ENCODING用的是EUC-CN,但输出文档的语言OUTPUT_LANGUAGE却选了English。两点原因: o EUC-CN(各种汉字编码知识就不在此普及了,你可以认为简体字编码都是EUC-CN)和UTF-8不同,但OUTPUT_LANGUAGE的各种语言都是使用的UTF-8,所以两种编码不可能同时显示,当然,你可以把EUC-CN全转成UTF-8。编码不是高级的技术,但对于非英语用户绝对是一个噩梦。 o 虽然我的英文很蹩脚,虽然我的文档中多有中文注释。但像doxygen中文输出的文档中把class、public都给你翻译成中文,你也受不了,这也英文水平无关。 config-file中的其他内容我现在也用不到,就没有仔细看。 因为Kevin会在公司里讲一下doxygen,doxygen的manual也讲的很详细,我就省点时间,不翻译文档了。 简单的一个Doxygen的测试在这里。 请移步至此阅读全文» August 24 ACE之Cygwin vs Win
本文同步自游戏人生 ------------------------------------------------------------------- 我屈服了,还是VS用的方便。 之前在Cygwin下已经可以使用的ACE,因为阅读代码太不方便(对于一个WinEr来说),上午在VS下面花了几分钟就把ACE配好了,而且使用$(ACE_ROOT)\examples\C++NPv1的代码跟踪调试,太习惯了。 按照$(ACE_ROOT)\ACE-INSTALL.html的安装说明: o 选择并打开$(ACE_ROOT)\ace\ace_vc9.sln o 添加config.h并加入以下内容: #include "ace/config-win32.h" o F7 ----------------------------------------------- OK,现在$(ACE_ROOT)\lib下面已经生成了ACEd.dll、ACEd.lib,再设置一下系统环境变量(运行程序必需)和VC++目录(调试程序必需)。可以使用了: o 选择并打开$(ACE_ROOT)\examples\C++NPv1 o F7 o for (; ; ) { F12, F9, F5, F10, F11 } ----------------------------------------------- 半个小时就搞定了当时一个星期的折腾…… 结论:对于一个不忠实的Win Coder,在MinGW, Cygwin, UNIX…下面装B是要付出代价的。 当然,家里的机器就让它还一直跑Cygwin吧。请移步至此阅读全文» August 19 ACE在cygwin下的使用
本文同步自游戏人生 ------------------------------------------------------------------- /*--------- Hello.cc ---------*/ /** Hello.cc: #define ACE_NTRACE 0 /// trace the calling position #include "ace/Log_Msg.h" /// include log module int ACE_TMAIN(int, ACE_TCHAR *[]) ACE_DEBUG((LM_INFO, ACE_TEXT("%IStart\n"))); return 0; /*--------- makefile ---------*/ BIN = hello # src & exe file name include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU /*--------- Compilation ---------*/ GNUmakefile: /home/fox/ace/GNUmakefile MAKEFLAGS=k g++ -Wpointer-arith -mthreads -mtune=pentiumpro -O3 -g -pipe -pipe -I/usr/\ Compilation finished at Wed Aug 19 00:35:42 /*--------- Result ---------*/ $ ./hello.exe ------------------------------------------------------- 更多内容请参考C++NP(C++ Network Programming) vol.1 & vol.2和APG(The ACE Progrmmer's Guide)。 忙活了一晚上,终于知道怎么包含头文件了,在gcc的编译选项中用 -I或/I$(ACE_ROOT): 本例中是:-I/usr/share/ace 结果后面库又链接不上,联想以前使用OpenGL库的LIBS,终于靠一个-lACE搞定。 因为不愿意用MPC,总感觉再多花些时间去弄又只是离题更远了,有兴趣的同学自然是可以通过ACE的官网找到所有问题的答案。 这样一来,ACE在cygwin下从安装到使用也就告一段落了,后面的问题就比较easy了,无非是你用ACE做什么。而我也不会再就ACE && cygwin写什么心得了,总算见证了这两天的捣腾。
请移步至此阅读全文» August 18 Chrome 4.0 vs. IE 8.0
本文同步自游戏人生 ------------------------------------------------------------------- 我一般只是用浏览器浏览网页,很少在线看视频之类的,平时用Chrome的时间居多,Chrome的书签、页面元素审查和下载管理是我最常使用的功能,Chrome的进程拖拽模式也比较舒服。 但Chrome一直有几个软肋: o 不(被)支持电子银行; o 不(被)支持金山词霸(连谷歌金山词霸都不支持,真是极大的一个讽刺,谷歌和金山的工程师们任重道远啊); o 很多花哨的网络应用在UI上(被)支持都不够好; o 另一点不爽的是:像cygwin下很多文本文件没有后缀名,可以用IE打开,却无法直接拖到Chrome里面打开。 而IE一直是(被)支持的(毕竟是占有率第一的浏览器),但我不喜欢IE(纯属个人情愫): o 6.0的时候缺点海了去了; o 7.0不支持我常用的动态缩放(放大后不能动态调整文本,水平滚动条影响阅读); o 我更喜欢Google和它的产品,Google给我的感觉就是:不把用户当弱智。 现在8.0支持动态缩放了,我还是会安装一下。当然8.0有一个加速器,做的感觉还是比较人性化,而且明显是针对中国市场和Google系进行对抗,别忘了,MS有一个Live系。 ------------------------------- 随便写了一点,主要是因为: Windows 版 Chrome Dev 升级 4.0.201.1,增加书签同步功能!请移步至此阅读全文» August 17 与君共勉
本文同步自游戏人生 ------------------------------------------------------------------- 现在有些年轻人的心态比较浮躁,大致总结以下『四点表现』: 1. 眼高过顶; 2. 垂手过膝; 3. 期望值高; 4. 积极性低。 深层次的客观原因大致是『四个没有』: 1. 没有吃过苦; 2. 没有干过活; 3. 没有说过话; 4. 没有当过家。 一般都具有『四个特征』: 1. 独生子女; 2. 毕业新人; 3. 沉默寡言; 4. 半瓶开水。 --------------------------------- 1. 你想要什么? 参考:一个有影响力的人。(@李开复) 2. 那是否是你想要的? 参考:你的眼光有多远,决定了你能走多远。(@Fox) 3. 你需要做什么? 参考:高筑墙,广积粮,缓称王。(朱元璋) 4. 你还需要做什么? 参考:平和的心态,进取的态度,坚定的目标,不懈的努力。(@Fox) 5. 你是否做到了? 参考:没有,但我一直在努力。(@Fox) 请移步至此阅读全文» Cygwin下安装ACE
本文同步自游戏人生 ------------------------------------------------------------------- -----------------------读书----------------------- 想读《UNIX Network Programming》很久了,只是这种愿望一直没有特别强烈。用的笔记本换了之后强迫自己只是装了cygwin,没有安装VS,平时写些代码就只能在cygwin下用gcc了。最近对UNIX环境编程和网络基础比较感兴趣,于是读这本书终于提上了议事日程,可是大多数书店都没有这本书了。 工作之后,对于自己喜欢的书,就很少会去看电子版,觉得还是捧卷在手的感觉舒服一些,想怎么看怎么看,享受拿笔在上面写写画画的感觉。因此对于想读但买不到的书,第一反应是等待。在翻电脑上面一些资料的时候才反应过来我已经很久没有down过电子书了,结果就从网上down了很多想读(豆瓣)的书,forgive me, Richard Stevens and anybody. -----------------------动手----------------------- 之前只是在Windows下用过ACE,因为ACE提供了VS各种版本的解决方案,编译过程比较简单。这次放在cygwin下编译的时候,因为环境变量设置问题,并不是非常顺利,参照了源码目录下的ACE-INSTALL.html的描述才将问题解决。现在将过程给出来,仅供google到这里的同学参考: 友情提示:我目前对于cygwin和UNIX类系统的了解停留在知其然(还是在google之后)的水平。 1. 增加环境变量 o 修改/etc/profile文件读写属性: $ chmod 777 /etc/profile cygwin下的环境变量可以在该文件中配置,由于该文件默认具有写保护属性,因此需要修改使之可写,修改完成之后应该记得对其进行写保护: $ chmod 555 /etc/profile o 打开profile文件(本人使用emacs进行编辑,读者也可以使用vi、vim等,在此不再赘述): $ emacs /etc/profile o 往profile中修改和添加环境变量: 将以下五行添加到文件中,ACE_ROOT为ACE源码目录,本文用到的目录是/usr/share/ace: ACE_ROOT=/usr/share/ace LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH # export PATH=$ACE_ROOT/ace:$PATH 这个操作等同于在VS下修改库文件目录,我是直接修改了PATH变量的: PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$ACE_ROOT/ace:$PATH o 执行/etc/profile $ /etc/profile 执行修改后有可能需要重启cygwin,可使用下面的命令查看ACE_ROOT设置是否正确: $ echo $ACE_ROOT 2. 创建若干文件: o 在$ACE_ROOT/ace 文件夹中创建名为 config.h 的文件,并加入以下内容后保存关闭: #include "ace/config-cygwin32.h" o 在$ACE_ROOT/include/makeinclude 文件夹中创建名为 platform_macros.GNU 的文件,并加入以下内容保存关闭: include $(ACE_ROOT)/include/makeinclude/platform_cygwin32.GNU 3. 编译ACE: $ cd $ACE_ROOT/ace 大概会花掉十几分钟时间吧。 4. 测试ACE: $ cd $ACE_ROOT/tests 大概又会花掉十几分钟时间吧。 接下来就可以使用perl脚本完成所有测试,我没有使用过perl,临时安装了一下。 $ perl run_test.pl 这个脚本在我一位同事的机器上跑了很久(十几分钟 or 几十分钟?),不幸的是,Windows竟然抛出了一个内存读写错误,更加不幸的是,我现在没有能力去确定。 结果周末后面的时间又花在熟悉EMacs上了,还没有看ACE的代码,只有下周才能看了。 -----------------------结束----------------------- 这种小学生的东西拿出来讲确实是很难为情的,然而,于我现在却又算是极大的一个收获。真等我熟悉了其中的很多内容,又未必会再有耐心说了。所以还是记录一下,既是鼓励,也是督促。 晚上睡觉之前翻了一下《ACE程序员指南:网络与系统编程的实用设计模式》,发现里面2.3节也讲到了怎么安装。 请移步至此阅读全文» Cygwin下安装ACE
本文同步自游戏人生 ------------------------------------------------------------------- -----------------------读书----------------------- 想读《UNIX Network Programming》很久了,只是这种愿望一直没有特别强烈。用的笔记本换了之后强迫自己只是装了cygwin,没有安装VS,平时写些代码就只能在cygwin下用gcc了。最近对UNIX环境编程和网络基础比较感兴趣,于是读这本书终于提上了议事日程,可是大多数书店都没有这本书了。 工作之后,对于自己喜欢的书,就很少会去看电子版,觉得还是捧卷在手的感觉舒服一些,想怎么看怎么看,享受拿笔在上面写写画画的感觉。因此对于想读但买不到的书,第一反应是等待。在翻电脑上面一些资料的时候才反应过来我已经很久没有down过电子书了,结果就从网上down了很多想读(豆瓣)的书,forgive me, Richard Stevens and anybody. -----------------------动手----------------------- 之前只是在Windows下用过ACE,因为ACE提供了VS各种版本的解决方案,编译过程比较简单。这次放在cygwin下编译的时候,因为环境变量设置问题,并不是非常顺利,参照了源码目录下的ACE-INSTALL.html的描述才将问题解决。现在将过程给出来,仅供google到这里的同学参考: 友情提示:我目前对于cygwin和UNIX类系统的了解停留在知其然(还是在google之后)的水平。 1. 增加环境变量 o 修改/etc/profile文件读写属性: $ chmod 777 /etc/profile cygwin下的环境变量可以在该文件中配置,由于该文件默认具有写保护属性,因此需要修改使之可写,修改完成之后应该记得对其进行写保护: $ chmod 555 /etc/profile o 打开profile文件(本人使用emacs进行编辑,读者也可以使用vi、vim等,在此不再赘述): $ emacs /etc/profile o 往profile中修改和添加环境变量: 将以下五行添加到文件中,ACE_ROOT为ACE源码目录,本文用到的目录是/usr/share/ace: ACE_ROOT=/usr/share/ace LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH # export PATH=$ACE_ROOT/ace:$PATH 这个操作等同于在VS下修改库文件目录,我是直接修改了PATH变量的: PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$ACE_ROOT/ace:$PATH o 执行/etc/profile $ /etc/profile 执行修改后有可能需要重启cygwin,可使用下面的命令查看ACE_ROOT设置是否正确: $ echo $ACE_ROOT 2. 创建若干文件: o 在$ACE_ROOT/ace 文件夹中创建名为 config.h 的文件,并加入以下内容后保存关闭: #include "ace/config-cygwin32.h" o 在$ACE_ROOT/include/makeinclude 文件夹中创建名为 platform_macros.GNU 的文件,并加入以下内容保存关闭: include $(ACE_ROOT)/include/makeinclude/platform_cygwin32.GNU 3. 编译ACE: $ cd $ACE_ROOT/ace 大概会花掉十几分钟时间吧。 4. 测试ACE: $ cd $ACE_ROOT/tests 大概又会花掉十几分钟时间吧。 接下来就可以使用perl脚本完成所有测试,我没有使用过perl,临时安装了一下。 $ perl run_test.pl 这个脚本在我一位同事的机器上跑了很久(十几分钟 or 几十分钟?),不幸的是,Windows竟然抛出了一个内存读写错误,更加不幸的是,我现在没有能力去确定。 结果周末后面的时间又花在熟悉EMacs上了,还没有看ACE的代码,只有下周才能看了。 -----------------------结束----------------------- 这种小学生的东西拿出来讲确实是很难为情的,然而,于我现在却又算是极大的一个收获。真等我熟悉了其中的很多内容,又未必会再有耐心说了。所以还是记录一下,既是鼓励,也是督促。 晚上睡觉之前翻了一下《ACE程序员指南:网络与系统编程的实用设计模式》,发现里面2.3节也讲到了怎么安装。 请移步至此阅读全文» August 13 拱卒的修炼
本文同步自游戏人生 ------------------------------------------------------------------- -----------------------读书----------------------- 最近在读的一些书里,有一些是第一次读,有一些是以前翻过的。这次拣这本读起来容易做起来困难的《程序员修炼之道》,我手里的这本《程序员修炼之道》(The Pragmatic Programmer,以下简称PP),其拥有者是Soft(等我仔细阅读完了再还你吧:D)。这样一本书,让我想起了《春秋》,所谓『微言大义』,这本书当之无愧。晚上重读了前面几章,抛开书中讨论的具体技术和开发细节,简单说几点。 1. 关于承担责任 最低层次的是对自己负责,这是作为一个coder起码的素质,能够勇敢的承认自己所犯下的错误,并努力改正和避免。他们循规蹈矩、战战兢兢的做着份内的事儿,轻易不拿源码去喂猫。安得广厦千万间,靠的就是他们。 稍微有担当一些的老员工还会做到对正在参与的项目和产品负责,当问题出现的时候,他最先想到的并不是追问这是谁犯的错误。因为他知道错误总会出现,他们存在的意义之一就是想办法解决,从而保证整个项目和产品的稳健。他们是大裤衩被烧之后的救火队员。 当一个人可以为某个公司甚至是某个领域的问题牵肠挂肚、孜孜以求的时候,他不是一个人在战斗。更多的时候,他不是在充当救火队员,而是以实际行动带领其它人树立防火意识,给你足够的安全感。在现实当中,他们以自己敏锐和独到的眼光,将更多的新兴技术带给业界。他们不仅获得同事和公司的尊重,也获得了整个业界的尊重。他们是谁,你一定曾经在twitter或者googlegroup中经常能看到。 2. 关于知识资产 我完全赞同Andrew和David关于知识资产的论述,因此这里不吝做一做文抄公: o 每年至少学习一门语言; o 每季度阅读一本技术书籍; o 也要阅读非技术书籍; o 上课; o 参加本地用户组织; o 试验不同的环境; o 跟上潮流; o 上网。 3. 关于交流(WISDOM) What do you want them to learn? What is their interest in what you've got to say? How sophisticated are they? How much detail do they want? Whom do you want to own the intormation? How can you motivate them to listen to you? 4. 关于设计 GoF的DP对重构的好处和方法都提供了很好的指导,PP关于避免编码的重复和提高设计的正交性(解耦)都已经论述了太多。 其实,无论是开发之中还是开发之外,最困难的事情大概就是改变自己的习惯了,这本书里每一节的最后大都提供了『挑战』项。简单来说,就是不断提升和反省,在提升中反省,在反省中提升。 在去年年底写的《2009年的十大》中,为自己这一年定了十个目标。时间过去一半多了,虽然没有用心去读存在磁盘上的《胡适文集》,倒也没有放弃对人文的关注。最主要的是,一直保持不间断的阅读。 -----------------------动手----------------------- 一直活在Windows的『阴影』下,家里怎么也不想装Windows下的IDE了。搞了Cygwin来玩,在不同的开发环境下来回切换,对于我这种擅于在一棵树上吊死的惰性分子来说,还是很痛苦的。 之前直接运行info程序(info reader),没有高亮看起不舒服。后来才发现可以直接在Emacs下运行info命令的,只是和使用info reader时有些命令差异。 这几天晚上不看书的时候,就是随便看看gdb和Emacs的man和info,重新回到了读书查单词的大学时代。如果英语阅读能力再好些,就可以凭一方键盘驰骋沙场了,饶是如此费劲,倒也不失酣畅淋漓。 总结了一下: 1) 打开Emacs,『欢迎词』很关键,它会告诉你怎么往下爬,尤其是如何打开帮助,这是第一步; 2) Emacs下运行info命令,并分别查看Info的使用和Emacs的使用; 3) 学会Emacs和Info基本使用方法后,学习使用gdb。 慢慢熟练之后,基本就可以在新的环境下编写、调试代码了。 在Google Doc中放置了一部分翻译的文本: o 常用 Info 命令键 o LESS命令概述 o GNU 工具(LESS) -----------------------提示----------------------- 翻译内容纯属个人喜好,不以任何方式保证内容的准确,不以任何方式承诺后续内容的跟进,谢绝任何方式的挟迫。请移步至此阅读全文» August 11 使用flickr发表图片 |
|
|