我们有一个非常古老的大项目,主要由C(和一小部分C ++)编写,它可以在Linux和Windows中构建。目前,我们手动编写了这个项目中的所有Makefile,我觉得这不好。
现在我们想让这个项目完全开源。但是,在此之前,我们希望增强构建此项目的方法。所以我想知道开源社区建立此类项目的最佳/最受欢迎的方式是什么?我对autoconf / antomake有点了解,似乎已经存在很长一段时间了,只是想知道是否有任何新的更好的方法来构建C / C ++项目?
谢谢!
答案 0 :(得分:1)
最“开源”的方式是重新编译编译器链以使用autotools。
基本上,它允许通过检测需要库及其位置然后编写makefile以匹配平台来在一些“未知”系统中进行编译。
对于C和C ++来说,这是一个非常好的匹配。
如果你想“推动信封”,Apache的Maven也可以使用NAR插件编译C和C ++。就个人而言,我真的很喜欢Apache的Maven;但是,如果你不熟悉它,NAR加上“学习专家”将是一个相当大的挑战。同时,从Linux上安装源代码的每个人都很快熟悉了auotmake的“configure; make; make install”例程,因此使用Maven来实现这一点实际上有点“开箱即用”。
还有CMake;然而,CMake的好处并没有真正让我感觉与更成熟的autotools工具链完全不同。也就是说,CMake是一个非常好的设置,它变得更加复杂(并且越来越多地匹配了automake环境),因为它必须支持像automake支持这样的成熟工具链的问题。
总而言之,我会说坚持使用autoconf / autotools / automake。有很多示例,虽然您可能必须利用M4宏语言,但构建系统的每个部分都是可读的,并且可以利用它来创建您自己的自定义扩展。