我正在寻找一种工具,它可以为不同编译器(gcc、microsoft vc++、borland 等)和不同平台(Win、Linux、Mac)的 C/C++ 项目生成 makefile。
10 回答
您是否尝试过自动生成文件生成器?
它支持以下编译器:
宝兰 3.1 宝兰 5.0 Borland 5.0,16 位 宝兰 5.5 宝兰 5.6 宝兰 5.8 抄送 牛g++ Gnu g++,动态库 适用于 Linux 的英特尔 5、6、7 适用于 Linux 的 Intel 5、6、7,动态库 适用于 Windows 的英特尔 5、6、7 适用于 Linux 的英特尔 8、9、10 Intel 8,9,10 for Linux,动态库 适用于 Windows 的英特尔 8,9 适用于 Windows 的英特尔 10 视觉 C++ 5 视觉 C++ 6、7、7.1 视觉 C++ 8 打开沃通 华通10A Watcom 10A,16 位
我以前使用过Bakefile并取得了一些成功。它相当简单,似乎运作良好。
CMake 是唯一可以实际生成真正的 Visual Studio 项目(即不是调用外部工具的“Makefile”项目)的工具,它会在构建输入文件 (CMakeLists.txt) 更改时自动重新创建项目。
SCons 性能问题是众所周知的,并且是 SCons 邮件列表中争论不休的话题。
我会投票给OMake。它解决了我对 GNU make 的所有抱怨:
- 这是一门成熟的语言。
- 使用 MD5 而不是时间戳。
- 提供了一个最小的 shell,它在所有平台上实现了最有用的 unix 命令:find、sed、awk 等...
- 适用于 unix 或 dos 样式的路径名。
- 广泛记录。
- 支持并行构建。
- 快速地。
(M|m)akefiles 的自动生成让我担心你在这里尝试做什么。
当您键入 make 时,您了解幕后发生的事情吗?还是gmake?我只是问,因为如果你在事情中断时不这样做,例如新的代码更改没有被合并到构建中,你将很难尝试处理已经发生的事情。
要开始了解 make,我可以建议阅读Robert Mecklenberg的“使用 GNU Make 管理项目”。前面几章介绍了 make 的工作原理。让您了解 make 是反向链接的事实是您可以做的最重要的事情之一。
如果您不这样做,并且您的系统似乎可以工作,那么用实用程序员的术语来说,您将是“巧合编程”。(-:
顺便说一句,他们网站上有很棒的文章!我不参与其中。YMMV。亚达亚达...
我还将支持 CMake。我在一个多平台项目上使用它已经有一段时间了,我对它非常满意。
要考虑的一个问题是您想要“makefile”创建者还是替代构建系统?替换构建系统的问题在于,对于用户期望的平台(Visual C++),您通常无法获得良好的 IDE 集成。如果您确实想要一个 makefile 创建者而不是替代构建系统,请查看MPC。它是免费和开源的。
最近添加到替换列表中的是waf。从个人经验来看,SCONS 做得很好。
不知道大家对这个问题有没有兴趣。我正在研究一个名为CodeMate的类似 Makefile 自动生成器投影,它是使用 Ruby 开发的。也许它现在对于大型应用程序还没有那么成熟,但我会继续努力让它变得更好。用户不应该需要编辑任何配置文件来构建软件,或者至少应该是这样。学习曲线应该最小化。