我们需要在各种环境(如 suse x86、suse itanium、solaris、HPUX、IBM AIX)上使用不同的编译器选项(如编译器标志、32 位或 64 位、静态)构建一个 C
库或动态,字节顺序等)。目前我们正在大约 200 台构建机器上构建它。我们有一个高效的 makefile,但我们仍然需要登录到各种机器并执行 FTP
来获取代码,然后执行 make
然后再次传输库。然后我们需要将所有 200 个平台库保存在一台发布机器中。
我们的目的是减少手动登录不同机器来触发构建的工作量,最好的方法是什么?
一种自动化方法是在一台 linux 机器上编写一个 expect
脚本,该脚本将登录所有 200 台机器,触发构建并收回库并将其保存在原地。
与为 200 次构建编写 expect 脚本相比,是否有任何其他方法可以更省力?例如,我们需要构建大约 50 个 Vxworks
平台,因为我们只在一台 Windows 机器上安装了 tornado 包(交叉编译器),它将支持所有 50 个平台。为此,我们编写了一次点击自动化脚本(不需要登录 50 台机器的小脚本)。
类似地,如果交叉编译器适用于所有 *nix 机器(suse、solaris、hpux、ibm aix 等)编译器,我们可以在一台机器(linux 或 windows)上安装所有这些编译器。然后我们可以编写一个脚本,在一台机器上自动完成所有 200 个构建,而无需编写用于远程登录或 ftp 的脚本。
或者是否有任何其他简单的方法来处理多个 *nix 平台中的构建?
最佳答案
会 Jenkins对你来说有可能吗? 它在 Java 项目 (C/C++/C#) 之外变得越来越流行。据我了解,Jenkins 很合适。
关于c - 在各种机器上优化 C 库构建/编译任务的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14654750/