c - 在各种机器上优化 C 库构建/编译任务的最佳方法

标签 c build compilation build-process build-automation

我们需要在各种环境(如 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/

相关文章:

linux - P3DFFT 编译 - ifort 编译器错误 - "multiple definiton of ' main' "

c - 警告 : ‘struct user_data_s’ declared inside parameter list

使用 Maven 编译器进行 JAVA 转换

c - 模拟类似 shell 的行为

android - 用android ndk编译dlib和opencv

Android 发布构建错误 : "The value for this property cannot be changed any further."

java - 无法构建新的java spring项目

python包从其他目录(seqlearn包)在linux中编译build_ext

c - 将系统时间用于随机数生成器种子

c - 将字符串值赋给指针