西西河

主题:小心地探讨我们可以用Ubuntu干些什么,不能干什么? -- yueyu

共:💬137 🌺107 新:
全看分页树展 · 主题 跟帖
家园 这么比不合适

在Linux下,只要有源代码,在Suse,Ubunut,Fedora,等等之间重新编译基本上就是两三个命令的事情。往往以前运行在普通Unix下的程序一样可以编译在Linux上运行。而windows下用Visual Studio写的程序拿C++builder就会碰上一堆的问题。

无论你的linux下,还是Unix下,用的编译器都是gcc对不?

但是如果你把Visual Studio的代码移植到了C++ Builder的话,那可就是跨了编译器的移植了,这难度可不是一点半点。

C++Builder很久以前在linux下有个移植版本,叫做:kylix for C++。可以试着把用gcc编译的项目用它编译一下,看看效果如何?我虽然没有试过,但是我相信绝对不是一件轻松愉快的事情。

vi只不过是众多Linux上文本编辑器的一种,还有更加强大的emacs等等。集成的IDE环境有Eclipse,Ajunta等等。

客观地说,linux上的IDE,能和VS想比的确实没有,哪怕是十多年前出来vs6,都未必比得上。

Windows下强大的编辑器也不是没有,UE的水平也不差,而且vim/emacs也在Windows下有移植版本。但是为什么几乎没有人用这些编辑器开发大型的C/C++项目?如果linux下的ide平台真的这么强大,那么为什么还那么多人抱着vim/emacs不放?

其实想想就知道,原因无非就是linux下的这些IDE,其实比起vim/emacs来说,强不了多少。

另外,再说几个Windows下开发比较容易入门的因素:

Windows下开发,有MSDN。这个重量级的文档资料库,不但远远比man强,而且在整个开源社区,也拿不出一个能和它相提并论的文档库。事实上有时候我在linux下开发时,碰到一些stl中比较复杂的用法时,也会去差MSDN。

另外就是linux下的makefile语法相当的晦涩。一个超过几万行的项目,通过makefile组织起来就颇为的复杂了。在我的公司里面,大部分的makefile都不是从头开始手写的,而是拿一些现有的makefile弄过来修修改改,能用就行的。这样就造成了相当多的代码冗余,也大大的增加了阅读的难度和出现bug的几率。

我想很多人看到这里就会说到automake,但是automake生成出来的makefile,就更是天书一般。没有三五年的经验,很多人估计一下子是就懵了。

当然,makefile不仅仅是automake那种东西,但是无论那种,对应到大型项目中时,都不太好懂。例如说ACE的那套makefile,版上有多少人是能完全弄清楚它的原理流程和细节的?

但是VisualStudio的sln和vcproj,用的则是简洁的xml类似的组织形式,相当的容易看。同样是ACE的项目,vs的项目工程,就好懂很多。

ps:现在有个新的cmake,听说挺不错的,有空了解一下,希望能比automake那套东西好用吧。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河