作为优秀的开发人员,我们尽可能保持代码符合标准,以帮助在平台之间进行移植。但是有哪些工具可以帮助我们以统一的方式跨多个平台构建代码。
*nix 家族有make
但 Windows 需要nmake
。
我读过关于SCons的文章,但从未在愤怒中使用它。你最喜欢的构建工具是什么,为什么你觉得它有效,是否有任何限制(即支持不良的平台等)。
跨平台 IDE 也是如此。
作为优秀的开发人员,我们尽可能保持代码符合标准,以帮助在平台之间进行移植。但是有哪些工具可以帮助我们以统一的方式跨多个平台构建代码。
*nix 家族有make
但 Windows 需要nmake
。
我读过关于SCons的文章,但从未在愤怒中使用它。你最喜欢的构建工具是什么,为什么你觉得它有效,是否有任何限制(即支持不良的平台等)。
跨平台 IDE 也是如此。
我个人使用 ant、rake 和 maven2。我最常使用 ant 并发现它很棒有几个原因:
因为它是 java 它适用于许多平台(无需更改任何脚本)
构建文件是用 XML 编写的,并且相当容易编写
有很多可用的 3rd 方扩展,并且很容易为它编写插件
c/c++ 环境的 cmake 很好。http://www.cmake.org/
我们做极端交叉开发,我们的代码运行在 linux、windows ce、windows 2K、nucleus 和 uCOS-II 上。因为每个环境都使用不同的“make”方法(例如,外核客户要求我们通过 code-warrior GUI 进行编译)。
我将 ANT 与 perl 结合使用了大约 2 年,但这导致构建脚本完全不可维护。
现在我们开始使用 python,这增加了脚本的可维护性。
归根结底,我没有找到现成的工具,不得不自己构建。也许,当我有时间(2017 年?)时,我会打包我的脚本并分发它们....
如果您在 Java 世界中,那么有很多工具是跨平台的。Apache Ant 和 Maven 都是构建工具,可以在任何支持 Java 的平台上运行。
Cruise Control(持续集成工具)也适用于 Windows 和 Linux(它也是用 Java 编写的)。
我对核心工具没有任何真正的问题,我有时遇到的唯一问题来自构建过程之外的东西,即发布工件 - 这会因系统而异,所以我发现没有单一的方法设置它。
对于 C/C++ 开发,我发现bakefile运行良好。相当大的wxWidgets项目,一个跨平台的跨平台实用程序和 UI 库,使用它来生成构建文件。
Bakefile 是跨平台、跨编译器的原生 makefile 生成器。它将编译任务的独立于编译器的描述作为输入并生成本机 makefile(autoconf 的 Makefile.in、Visual C++ 项目、bcc makefile 等)。
Bakefile 的任务是生成本机 makefile,以便人们可以继续使用他们喜欢的工具。还有其他跨平台的 make 解决方案,但它们不是原生的,需要用户使用不熟悉的工具(Boost.Build),或者它们太有限(qmake)。
你可以在 Windows 上使用 gmake 以及 cygwin/minGW 或在 Linux 上构建你的 windows 东西。 http://cdtdoug.blogspot.com/2009/05/mingw-cross-for-linux.html
有像 Opus Make 或 MKS Toolkit 这样的工具提供多平台和支持。如果您有一个现有的 make 脚本代码库,则可以更容易地迁移到其中之一。我怀疑你可能会在 DDJ 杂志的广告中寻找类似的工具。
在过去的 18 个月里,我们一直在为 Linux、Windows 和 Mac 运行 Java 环境。
我们确实使用了 GWT 一段时间,这确实给我们带来了很大的痛苦。如果你那样摆动,要小心。