【问题标题】:Best way to optimize the building/Compilation task of C library on various machines在各种机器上优化 C 库的构建/编译任务的最佳方法
【发布时间】:2013-01-17 06:20:33
【问题描述】:

我们需要在具有不同编译器选项(如编译器标志、32 位或 64 位、静态或动态、字节序等)的各种环境(如(suse x86、suse itanium、solaris、HPUX、IBM AIX)上构建一个C 库)。目前我们正在大约 200 台构建机器上构建它。我们有一个高效的makefile,但我们仍然需要登录到各种机器并执行FTP 来获取代码,然后执行make,然后再次传输库。然后我们需要将所有 200 个平台库保存在一台发布机器中。

我们的目的是减少手动登录不同机器以触发构建的工作量,最好的方法是什么?

通过在一台 linux 机器上编写 expect 脚本来自动执行此操作的一种方法,该脚本将登录到所有 200 台机器,触发构建并取回库并将其保留在原位。

与为 200 次构建编写期望脚本相比,还有其他方法可以减少工作量吗?例如,我们需要构建大约 50 个Vxworks 平台,因为我们只有在一台可以支持所有 50 个平台的 Windows 机器上拥有 tornado 包(交叉编译器)。为此,我们编写了一键式自动化脚本(不需要登录 50 台机器的小脚本)。

类似地,如果交叉编译器可用于所有 *nix 机器(suse、solaris、hpux、ibm aix 等)编译器,我们可以将所有编译器安装在一台机器上(linux 或 windows)。然后我们可以编写一个脚本来自动化一台机器上的所有 200 个构建,而无需编写用于远程登录或 ftp 的脚本。

或者有没有其他简单的方法来处理多个 *nix 平台中的构建?

【问题讨论】:

    标签: c build compilation build-process build-automation


    【解决方案1】:

    Jenkins 是否适合您? 它在 Java 项目 (C/C++/C#) 之外变得越来越流行。据我了解,Jenkins 会很合适。

    【讨论】:

      【解决方案2】:

      看看 GNU AutoTools。每个人都知道如何使用他们的输出(典型的./configure; make; make install 舞蹈),对目标没有奇怪的要求,拥有广泛的机制来处理操作系统的变幻莫测。不过,它的学习曲线相当陡峭。

      【讨论】:

        猜你喜欢
        • 2013-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-28
        • 1970-01-01
        • 2012-04-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多