问一个也许不该问的问题
-
- 帖子: 200
- 注册时间: 2006-07-23 15:02
- 联系:
问一个也许不该问的问题
刚转到linux环境编程
问一个问题,既然linux下有不少不错的IDE,为什么还要花很多精力研究gcc,gdb?
想code:blocks或者别的ide,都有很好的编辑功能,然后直接compile,build,调试也是图形化。
问题换一个角度 ,就是,学习gcc,g++,gdb,makefile能给我门带来别的什么好处?
除了不用新建project以外。
问一个问题,既然linux下有不少不错的IDE,为什么还要花很多精力研究gcc,gdb?
想code:blocks或者别的ide,都有很好的编辑功能,然后直接compile,build,调试也是图形化。
问题换一个角度 ,就是,学习gcc,g++,gdb,makefile能给我门带来别的什么好处?
除了不用新建project以外。
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- ectotherm
- 帖子: 225
- 注册时间: 2006-05-23 13:35
- 联系:
-
- 帖子: 200
- 注册时间: 2006-07-23 15:02
- 联系:
- ectotherm
- 帖子: 225
- 注册时间: 2006-05-23 13:35
- 联系:
你在学习之前会有机会考虑是因为你不需要参与别人的协作——换句话说,如果你是参与团队开发,是没有机会考虑的,团队是不可能因为你一个人的考虑而影响整个工作的。
争先恐后去学习 gcc, gdb,打比方说,如果你在一个别人铺满海绵的房间里工作好,还是在一个空空的房间由你自己来铺海绵好?差别是,别人铺好的,你不知道什么地方会疙脚;但是你自己弄的,你非常清楚这个房间是什么样的,海绵能掩盖房间实体的表面,但是无法掩盖其本质——那些硬伤。
自己搞,虽然累,但是要长期开发的时候,是值得的。要快速开发的除外,最好学习 Java,通常认为 C++ 的复杂度非常高,熟悉一个 C++ 的时间可以精通好几次 Java。
有个项目文件也是非常头疼的问题,我是用 VSS 管理并发开发,每次刷新一下项目文件都要丢掉好几个文件,VSS 没有合并项目文件的能力?!CVS 和 SVN 没有试过,我怀疑公司里面有人会架设 SVN 服务器不。
争先恐后去学习 gcc, gdb,打比方说,如果你在一个别人铺满海绵的房间里工作好,还是在一个空空的房间由你自己来铺海绵好?差别是,别人铺好的,你不知道什么地方会疙脚;但是你自己弄的,你非常清楚这个房间是什么样的,海绵能掩盖房间实体的表面,但是无法掩盖其本质——那些硬伤。
自己搞,虽然累,但是要长期开发的时候,是值得的。要快速开发的除外,最好学习 Java,通常认为 C++ 的复杂度非常高,熟悉一个 C++ 的时间可以精通好几次 Java。
有个项目文件也是非常头疼的问题,我是用 VSS 管理并发开发,每次刷新一下项目文件都要丢掉好几个文件,VSS 没有合并项目文件的能力?!CVS 和 SVN 没有试过,我怀疑公司里面有人会架设 SVN 服务器不。
-
- 帖子: 200
- 注册时间: 2006-07-23 15:02
- 联系:
- ectotherm
- 帖子: 225
- 注册时间: 2006-05-23 13:35
- 联系:
linux 上一直不缺顺手的 ide,当然你要不认为 vim emacs 是的话就没法了。
用 gcc, gdb, makefile(主要是 GNU Make) 的原因是因为它们基于 GPL,GNU 的大部分开发也因为此。你的第二点太抽象了,看不懂。
gcc 因为跨平台的特性,所以开发的时候非常上手。当然你也可以用 CodeWarrior,但 cw 因为不是 GPL 的,所以在商用的时候非常碍手。vc, bcc32, icc 等,因为跨平台性能不是很好(vc 是完全没有),所以很少用。谁都想一次投资多处使用,所以 gcc 就是首选了。
gdb 则是因为 *nix 最强大的调试器,当然你也可以用 ddd,但是我没有太多的调试器经验,没有发言权。
makefile 的缺点在于不能跨平台,而且现在也非常少有项目直接手写 makefile 了,都用 autoconf/automake 生成的。代替 makefile 的是 Jam 方案,可惜我还没有学会。Ant, NAnt 主要用于 java, .net 构建,用在 c++ 上很浪费,所以 C++ 用得更多的是 boost::build - BJam,但是我不会现在。
用 gcc, gdb, makefile(主要是 GNU Make) 的原因是因为它们基于 GPL,GNU 的大部分开发也因为此。你的第二点太抽象了,看不懂。
gcc 因为跨平台的特性,所以开发的时候非常上手。当然你也可以用 CodeWarrior,但 cw 因为不是 GPL 的,所以在商用的时候非常碍手。vc, bcc32, icc 等,因为跨平台性能不是很好(vc 是完全没有),所以很少用。谁都想一次投资多处使用,所以 gcc 就是首选了。
gdb 则是因为 *nix 最强大的调试器,当然你也可以用 ddd,但是我没有太多的调试器经验,没有发言权。
makefile 的缺点在于不能跨平台,而且现在也非常少有项目直接手写 makefile 了,都用 autoconf/automake 生成的。代替 makefile 的是 Jam 方案,可惜我还没有学会。Ant, NAnt 主要用于 java, .net 构建,用在 c++ 上很浪费,所以 C++ 用得更多的是 boost::build - BJam,但是我不会现在。
- leal
- 帖子: 1119
- 注册时间: 2005-08-29 14:49
- 来自: 杭州
- 联系:
- ectotherm
- 帖子: 225
- 注册时间: 2006-05-23 13:35
- 联系:
-
- 帖子: 200
- 注册时间: 2006-07-23 15:02
- 联系:
ddd的图形化不是很出色,个人认为还需要很大的提高。
我是正在学习,vim,早就听说学好了对程序员非常有用。不过我对vim编程方面的插件不是很了解,比如自动补齐之类的。楼上几位如果知道能否推荐以下,谢谢。
另外,linux下有code:clocks:http://www.codeblocks.org/,与vs很多东西都有相似之处,而且更快更小,我承认我比较喜欢vs2005这个IDE,虽然它很庞大。我没有用过anjuta,不过linux好象不少程序员用它。
因此我再附加提一个问题,用vim或者emacs写代码,能达到像这些IDE这样,格式美观,切换容易,智能补齐,自动统计symbor,class等?
我是正在学习,vim,早就听说学好了对程序员非常有用。不过我对vim编程方面的插件不是很了解,比如自动补齐之类的。楼上几位如果知道能否推荐以下,谢谢。
另外,linux下有code:clocks:http://www.codeblocks.org/,与vs很多东西都有相似之处,而且更快更小,我承认我比较喜欢vs2005这个IDE,虽然它很庞大。我没有用过anjuta,不过linux好象不少程序员用它。
因此我再附加提一个问题,用vim或者emacs写代码,能达到像这些IDE这样,格式美观,切换容易,智能补齐,自动统计symbor,class等?
- ectotherm
- 帖子: 225
- 注册时间: 2006-05-23 13:35
- 联系:
-
- 帖子: 200
- 注册时间: 2006-07-23 15:02
- 联系:
- ectotherm
- 帖子: 225
- 注册时间: 2006-05-23 13:35
- 联系: