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

有帮助吗?

解决方案

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

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

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

  • CMake 也蛮甜蜜的。

  • 最后, 如果其他一切都失败了...

其他提示

你有没有尝试过 自动生成文件生成器?

它支持以下编译器:

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 

我用过 烘焙文件 之前取得了一些成功。这相当简单,而且似乎效果很好。

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

SCons 性能问题是众所周知的,也是 SCons 邮件列表上备受争议的话题。

我会投票给 奥马克. 。它解决了我对 GNU make 的所有抱怨:

  • 这是一种成熟的语言。
  • 使用 MD5 代替时间戳。
  • 提供了一个最小的 shell,它在所有平台上实现了最有用的 unix 命令:查找、sed、awk 等...
  • 适用于 unix 或 dos 风格的路径名。
  • 广泛记录。
  • 支持并行构建。
  • 快速地。

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

当你输入 make 时,你知道幕后发生了什么吗?还是gmake?我只是问,因为如果当事情发生时你不这样做,例如新的代码更改没有合并到构建中,你将很难尝试处理发生的事情。

要开始理解 make,我可以建议阅读“使用 GNU Make 管理项目” 罗伯特·梅克伦伯格。前面的章节介绍了 make 是如何工作的。让您了解 make 是向后链接的事实是您可以做的最重要的事情之一。

如果您不这样做,并且您的系统似乎可以工作,那么您将使用实用程序员的术语:“巧合编程". (-:

顺便说一句,他们的网站上有很棒的文章!而且我和他们没有关系。YMMV。雅达雅达...

我还会第二次使用 CMake。我已经在一个多平台项目上使用它很长一段时间了,我对它非常满意。

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

最近添加到 make 替换列表中的是 瓦夫. 。从个人经验来看,SCONS 做得很好。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top