1
17
我建议你 CMake . 优势:
我现在对所有东西都使用cmake,甚至是使用Visual Studio的简单测试项目。 我从来没有使用过自动工具,但很多其他用户评论说,cmake更容易使用。因此,kde项目从autotools移到了cmake。 |
2
3
我工作的产品和这个没有太大的不同。我们使用一个基于autoconf的构建系统,它工作得很好。 到目前为止,您将花费最多时间的地方是支持用户。用户系统将有各种各样的皱纹,直到遇到它们时你才预料到,你需要添加更多的配置选项来支持它们。随着时间的推移,我们添加了一些选项来设置我们所依赖的每个库的include和lib路径;我们添加了一些选项来更改编译标志,以解决这些库的不同版本中的各种奇怪的错误(或者API从一个版本更改为另一个版本,而不需要更改代码),我们增加了一些解决方法,因为一些BLAS库使用C接口,一些使用Fortran接口,所以即使理论上它们是同一个库的实现,它们也会做一些稍微不同的事情,等等。您不能预先预料到这一切,它还需要文档化,以便用户能够确定要设置的选项。 哦,安装程序真的很麻烦,因为它们通常依赖于操作系统(除非它只是一个shell脚本,而您需要cygwin),安装位置往往依赖于操作系统,等等。这是另一个需要花费时间的领域——要么在构建一个好的安装程序,要么在支持用户手动设置方面。 根据我的经验,设置交叉编译非常值得麻烦(至少对于Linux到Windows的情况,不确定MacOS/X),这比尝试保持多个不同的构建系统同步要容易得多。 作为另一种观点,OpenPo沫项目使用的选项是它们相当大的C++库,它将与一个“批准的”G++编译器一起分发,并为所有其他组件打包,这样它们就不必担心不同的编译器等等。但这只适用于一个操作系统。我想Windows/MacOSX版本是为了提供预先设置的VMware映像。在某些情况下,有话要说…… |
3
0
使用自动工具,大多数用户都熟悉它们(即,他们知道如何运行/配置&制作&制作安装)
关于CMAKE… 如果您主要针对Windows平台,或者您愿意支持MSVC,那么您可能应该考虑它。否则,自动工具将提供良好的分布并构建替代方案。 |
Mr.H. · 如何在外部文件中定义函数? 6 年前 |
Jon Goe · 实现SeekArc时生成同步失败 6 年前 |
Farzad J · VSTS中PowerShell脚本的打包管理器 6 年前 |
vladfau · Maven没有在多模型项目中构建兄弟依赖关系 6 年前 |