跨平台构建环境

时间:2008-10-07 08:29:52

标签: cross-platform build-automation build-environment

作为优秀的开发人员,我们尽可能保持代码符合标准,以帮助在平台之间移植。但是有哪些工具可以帮助我们在多个平台上以统一的方式构建代码。

* nix系列有make但Windows需要nmake

我读过有关SCons但从未在愤怒中使用它的内容。你最喜欢的构建工具是什么,你为什么觉得它有效并且有任何限制(平台支持不良等)。

跨平台IDE。

8 个答案:

答案 0 :(得分:5)

c / c ++环境的cmake很好。 http://www.cmake.org/

答案 1 :(得分:4)

我个人使用ant,rake和maven2。我最常使用蚂蚁,并且由于以下几个原因而发现它很棒:

  • 因为它是java,它可以在很多平台上运行(不需要更改任何脚本)

  • 构建文件以XML编写,相当容易编写

  • 有很多可用的第三方扩展程序,很容易为

  • 编写插件

答案 2 :(得分:2)

我们进行极端交叉开发,我们的代码运行在linux,windows ce,windows 2K,nucleus和uCOS-II上。 因为每个环境都使用不同的'make'方法(例如,核心客户,需要我们通过代码warrior GUI进行编译)。

我使用ANT结合perl大约2年,但这导致构建脚本完全不可维护。

现在我们开始使用python,这增加了脚本的可维护性。

底线,我没有找到现成的工具,不得不建立自己的工具。也许,当我有一些时间(2017?)我会打包我的脚本并分发它们....

答案 3 :(得分:1)

您可以在Windows上使用gmake以及使用cygwin / minGW或在Linux上构建您的Windows内容。 http://cdtdoug.blogspot.com/2009/05/mingw-cross-for-linux.html

答案 4 :(得分:0)

如果您在Java世界中,有很多跨平台的工具。 Apache Ant和Maven都是构建工具,可以在任何有Java可用的平台上运行。

Cruise Control(持续集成工具)也适用于Windows和Linux(它也是用Java编写的)。

我对核心工具没有任何实际问题,我有时遇到的唯一问题来自构建过程外部的东西,即发布工件 - 这会因系统而异,所以我发现没有单一的设置方式。

答案 5 :(得分:0)

对于C / C ++开发,我发现bakefile运行良好。相当大的wxWidgets项目是一个跨平台的跨平台实用程序和UI库,用于生成构建文件。

  

Bakefile是跨平台,交叉编译的本机makefile生成器。它将构建任务的编译器独立描述作为输入,并生成本机makefile(autoconf的Makefile.in,Visual C ++项目,bcc makefile等)。

     

Bakefile的任务是生成本机makefile,以便人们可以继续使用自己喜欢的工具。还有其他跨平台的make解决方案,但它们要么不是原生的,要么用户使用不熟悉的工具(Boost.Build),要么它们太有限(qmake)。

答案 6 :(得分:0)

有像Opus Make或MKS Toolkit这样的工具可以提供多平台和支持。如果您拥有make脚本的现有代码库,则可以更轻松地迁移到其中一个。我怀疑你可能会在DDJ杂志的广告中寻找类似的工具。

答案 7 :(得分:0)

过去18个月,我们一直在为Linux,Windows和Mac运行Java环境。

  • Maven 2驱动我们的构建,这里很容易让事情保持一致。在M2插件不敢踩的地方,我们使用小型Ant脚本。
  • IDE-wise我们正在使用Eclipse& IDEA - 当然,都是多平台的。
  • 测试 - JUnit,Fitnesse,Fest - 都是很好的多平台。
  • 发布脚本是用Ruby编写的。 Windows在这方面有点麻烦,但是根据需要转换路径的功能通常可以解决问题。
  • TeamCity做CI。我们实际上已经将它从Windows迁移到Linux,并且没有遇到任何错误,非常好的包。

我们确实使用了GWT一段时间,这确实导致了我们大量的疼痛。如果你这样摆动,要小心。