Linux 平台下爬代码的一些感受

        这两年来,一直在零敲碎打Ubuntu + OSM.Planet + Mapnik ,逼着我在Linux 下写了一些程序。因为是典型的Win C++程序员,只能选择较为熟悉的 QT 做上层了。用了两年,说说一些感受。

1、代码自动完成果然还是Win + VS +西红柿搞得好。

      由于Win下一直用D版 Qt VS 插件+西红柿,在VS下垒Code,  换到 QT-Creator 还真是不习惯(试了很多环境,QT-Creator ,KDev, CodeBlocks, Eclipse, 代码自动完成都不如番茄好使)。特别是对泛型的智能感知,做得好的插件很少。

2、Linux 第三方库很多,路径配置上明显优于Win

     Linux 最好之处就是能用的库实在太多了,相对 Windows下很多冷僻的库必须千方百计搜D版要好得多。更重要的是,Linux下是按照统一的路径管理库的文件,一个库的头文件、链接、实体分别存放在全局的include、lib、bin里,新下载、安装一个库,按照默认流程释放后即可引用,很少手工修改。这样做,最大的好处是按照标准规范写好的程序,拷贝到另一台机器上,工程文件基本上不用修改。这个问题在Win下引发了沉痛的教训。

      以前在Win下,为了不和别人冲突,一般不允许修改 VS的全局Include\Lib\Bin设置来引用第三方库,而是要求在  Solution 里进行专门配置。没有经验的组员不用宏表示路径,而是用绝对路径,很容易出问题。先是签入的工程文件在别人的机器上根本编译不了,发现工程设置中赫然写着绝对路径(谁给你权利要求把库放在C:\Program Files\XXX\Include里了!)。后来要求把依赖项全部放在Solution根文件夹下,一并签入, 结果还有问题,还是绝对路径,谁说工程必须放在 D:\Work\张三XXX\里? Linux中使用第三方库很少遇到这个问题,只要使用路径片段即可, 用  #include <libXXX/XXX.h> 即可。也难怪,Win下就没有规定第三方库文件要放在哪里。


3、还是路径管理,这次是坏处

     Win下安装一个软件,是这个软件的所有相关文件统一存放,比如所有软件都存在 haha 文件夹下,程序在 haha\BIN里,说明在  haha\Doc里,等等。Linux下则是按照类型分散存储,比如库在 /usr/lib/haha里,头在 /usr/include/haha里。想搞清楚一个东西在磁盘里放了多少文件,还真是麻烦。


4、目前最大问题是交流困难

     由于公司本身不是做Linux 开发的,所以绝大多数机器全是Win, 要与别人交流,必须使用Win, 很多软件是不可替代的(wine很不幸,不能满足需要)。正因为这样,需要再搞一台计算机,用来处理日常事务,用VNC桌面在Linux 下写程序。联想到最近博文里有人把一个古董帖子转发出来,(http://blog.csdn.net/sunxiaosunxiao/article/details/6685293),觉得那帖子有道理,但真的太偏激了。以目前我们的现状,全民都在Win下,彻底抛弃win是不现实的,即使家里的机器为了开发买了大硬盘,但也只能爬双系统——毕竟,老婆网购、日常炒股、QQ、网上银行……这些生活所需从一开始就没有认真考虑过Linux  的兼容性,Linux 桌面的前景比起Linux 系统本身要坏的多。

你可能感兴趣的:(eclipse,linux,ubuntu,qt,include,平台)