• Makefile 与 IDE 相比效率高在哪?

    2015/10/12 yoummg 1 评论

整理大神答案:

IDE 和 Makefile 并不是功能重复的两个选择。IDE 的「Integrated」有两个意思,第一是把 coding,compiling,building,debugging 等功能集中到一个环境里。第二是代表它可以集成现有的工具,同时在这种 integration 中提供自己的功能。

Makefile 是传统的 building 工具。和 coding,debugging 相比,building 对可视化的要求很低。从这个方面来说,很多 IDE 是可以直接调用 makefile 的。从这个角度说,IDE 和 makefile 没有谁绝对替代谁的问题。

但问题没有这么简单。Makefile 是一种功能比较灵活的工具。而 IDE 为了实现一些功能,需要对整个 building 结构有充分的了解。所以从 IDE 的角度来说,直接集成 makefile 的所有功能可能会带来一些麻烦。比如说 makefile 里如果做了直接修改某些 source file,或者创建 symbol link 的动作,IDE 的 debugging 可视化和函数定义查找等功能就会失败。所以,出于「安全」的考虑,IDE 会设计一个比 makefile 灵活性小的多的 building 功能,保证整体的环境可用。

Makefile 的优势在于,功能灵活,而且处理工具成熟稳定: 便于 version control。你说一万遍「手写 …… 已经过时了」,现实告诉你,只有手写文件才能可靠的 version control。 任何 plain text editor 都能处理。还有很多诸如 grep,awk 之类的传统工具。 与之相对的就是 IDE 的 project file 的劣势。格式变化太大,就连 Visual Studio 和 Xcode 不同版本之间的 project file 都有很大变化。而且只能被一家 IDE 处理。

总之,你的程序离 UI 越近,你对 IDE 的整体调试开发功能要求越高,就越需要坚持使用 IDE 的 building 功能。


个人感悟:大神就是大神,在我看了肯定觉得IDE效率高啊,makefile自己写的话,还不得累死了。但看了大神的答案,真是觉得makefile也有自己思考不到的地方,膜拜啊~~

说说你的理解,大家相互学习。

谢谢大家~~

1 收藏


直接登录
最新评论
  • 吴遥   01/28

    Makefile和IDE没有可比性,这个问题问的不好。我个人觉得两个都不喜欢。