2008-08-13 65 views
39

我正在寻找一种工具,可以为不同编译器(gcc,microsoft vC++,borland等)和不同平台(Win,Linux,Mac)的C/C++项目生成makefile。生成makefile的好工具?

回答

34

您可能希望其他建议考虑:

  • Scons是一个跨平台,交叉编译器编译库,使用Python scruipting为构建系统。用于各种大型项目,表现非常好。

  • 如果您使用Qt,QMake也是一个不错的构建系统。

  • CMake也很漂亮。

  • 最后,If all else fails...

8

你试过Automatic Makefile Generator

它支持以下编译器:

Borland 3.1 
Borland 5.0 
Borland 5.0, 16 bit 
Borland 5.5 
Borland 5.6 
Borland 5.8 
CC 
Gnu g++ 
Gnu g++, dynamic library 
Intel 5, 6, 7 for Linux 
Intel 5, 6, 7 for Linux, dynamic library 
Intel 5, 6, 7 for windows 
Intel 8,9,10 for Linux 
Intel 8,9,10 for Linux, dynamic library 
Intel 8,9 for windows 
Intel 10 for windows 
Visual C++ 5 
Visual C++ 6, 7, 7.1 
Visual C++ 8 
Open Watcom 
Watcom 10A 
Watcom 10A, 16 bit 
1

我会还的CMake第二。我在一个多平台项目中使用它已经有一段时间了,我对此非常满意。

0

需要考虑的一个问题是你想要一个“makefile”创建者还是一个替代构建系统?替换构建系统的问题在于,对于用户期望的平台(Visual C++),您通常不会获得良好的IDE集成。 如果您确实需要makefile创建器而不是替换构建系统,请查看MPC。它是免费且开源的。

4

我以前用过Bakefile,取得了一些成功。这很简单,似乎运作良好。

2

自动生成(M | m)akefiles让我担心你要在这里做什么。

当您输入make时,您是否了解封面下方会发生什么?还是gmake?我只是在问,因为如果你不在事情中断时,比如新的代码更改没有被合并到构建中,那么尝试处理发生的事情就会遇到困难。

要开始了解make,我可以建议阅读Robert Mecklenberg的“Managing Projects with GNU Make”。前面的章节介绍了make的工作方式。让你听到制造反向链接的事实是你能做的最重要的事情之一。

如果你不这样做,并且你的系统似乎能够工作,那么你就可以使用“实用程序员”的术语“programming by coincidence”。 ( - :!。可在他们的网站上

BTW大文章,我不参与他们因人而异亚达,亚达...

4

的CMake是唯一的工具,它可以真正产生实际的Visual Studio项目(即不是“Makefile” - 调用外部工具的项目),并在构建输入文件(CMakeLists.txt)更改时自动重新创建项目。在SCons邮件列表上。

3

我会投票OMake。它修复了我与GNU make的所有抱怨:

  • 这是一种全面的语言。
  • 使用MD5而不是时间戳。
  • 提供了一个最小的shell,它可以在所有平台上实现最有用的unix命令:find,sed,awk等...
  • 可以使用unix或dos样式路径名。
  • 广泛记载。
  • 支持并行构建。
  • 快。
0

最近增加的替换列表是waf。从个人经验来看,SCONS很好地完成了这项工作。

0

我不知道你是否对这个问题有兴趣了。我正在研究使用Ruby开发的名为CodeMate的类似Makefile自动生成器投影。也许现在对于大型应用程序还不是很成熟,但我会继续努力以使其更好。用户不需要编辑任何配置文件来构建软件,或者至少它应该是。学习曲线应该最小化。

+1

又一个死的SO链接!我手动去了你的GitHub页面,并且我在CodeMate中看到的是一个只有Fortran编译的东西。你是否创建了另一个同名的项目? [这](https://github.com/shepherddog/CodeMate)看起来可能是你的意思。 – refi64 2015-03-06 02:52:19