关于C#:有什么好的生成文件的工具吗?

关于C#:有什么好的生成文件的工具吗?

any good tool for makefile generation?

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


您可能需要考虑的其他建议:

  • Scons是一个跨平台,跨编译器的构建库,使用Python编写构建系统。在各种大型项目中使用,并且表现非常出色。

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

  • CMake也很甜蜜。

  • 最后,如果其他所有方法都失败了...


您是否尝试过自动Makefile生成器?

它支持以下编译器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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

我会投票给OMake。它解决了我对GNU make的所有抱怨:

  • 这是一种成熟的语言。
  • 使用MD5代替时间戳。
  • 提供了一个最小的外壳,可以在所有平台上实现最有用的unix命令:find,sed,awk等。
  • 适用于unix或dos样式路径名。
  • 大量记录。
  • 支持并行构建。
  • 快速地。

CMake是唯一可以实际生成真正的Visual Studio项目的工具(即不是" Makefile"-调用外部工具的项目),并且在构建输入文件(CMakeLists.txt)更改时会自动重新创建项目的工具。

SCons性能问题是众所周知的,并且在SCons邮件列表中引起了广泛争议。


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


(M | m)akefile的自动生成使我担心您要在此处执行的操作。

您了解键入make时幕后的情况吗?还是gmake?我之所以问是因为,如果您什么时候不中断,例如新代码更改未合并到构建中,您将很难处理发生的事情。

要开始了解make,我是否可以建议阅读Robert Mecklenberg撰写的"使用GNU Make管理项目"。前几章介绍了make的工作方式。让您了解make反向链接这一事实是您可以做的最大的事情之一。

如果您不这样做,并且系统似乎正常运行,那么您将使用The Pragmatic Programmers的术语"巧合编程"。 (-:

顺便说一句,他们网站上有不错的文章!而且我不参与其中。 YMMV。亚达亚达...


我还要第二个CMake。我已经在一个多平台项目中使用了很长时间,对此我感到非常满意。


我不知道您是否对这个问题感兴趣。我正在研究一个类似的MakeCode自动生成器投影,称为CodeMate,它是使用Ruby开发的。也许对于大型应用程序来说,它现在还不成熟,但是我将继续努力使其变得更好。用户不需要编辑任何配置文件即可构建该软件,或者至少应该如此。学习曲线应最小化。


最近一次更换商品是waf。根据个人经验,SCONS可以很好地完成这项工作。


要考虑的一个问题是您是否需要" makefile"创建者或替代构建系统?替换构建系统的问题在于,对于用户期望这样做的平台(Visual C),通常无法获得良好的IDE集成。
如果您确实想要Makefile创建者而不是替代构建系统,请查看MPC。它是免费的开放源代码。


推荐阅读