如何在 Jenkins 中使用不同的编译器标志多次执行一个构建?

Posted

技术标签:

【中文标题】如何在 Jenkins 中使用不同的编译器标志多次执行一个构建?【英文标题】:How to execute one build many times with different compiler flags in Jenkins? 【发布时间】:2018-01-05 16:50:15 【问题描述】:

我刚开始与 Jenkins 合作,需要一些帮助。

现在,我有一个想要使用 Jenkins 构建的项目。我对如何构建一个简单的项目有一个粗略的想法。我想知道的是,我可以使用某些编译器标志构建项目,然后自动使用不同的标志再次构建项目吗?

我的目标是能够向 Jenkins 提交程序,它会编译程序,运行一些测试,然后重新启动,但这次使用不同的编译器设置。然后我检查结果以查看代码在哪些编译器设置下运行最快。我需要使用 Jenkins,我需要做这个测试。

我目前的策略是设置一个主/代理系统,让主服务器通过一个管道,在该管道中,它以某种方式编译代码并将其推送到将执行的相应代理队列。这可行吗?我该怎么办?

【问题讨论】:

【参考方案1】:

我不知道我是否理解正确,但我会做不同的构建,你想用不同的标志运行相同的编译/测试。

我将一起做一个詹金斯管道,我将依次启动不同的阶段,例如: 阶段:

CheckSCM(git 克隆) 使用 flag1 构建 cleanWS(清洁工作空间) CheckSCM 使用 flag2 构建 干净的WS CheckSCM 使用 flag3 构建

【讨论】:

以上是关于如何在 Jenkins 中使用不同的编译器标志多次执行一个构建?的主要内容,如果未能解决你的问题,请参考以下文章

Valgrind 标志,调试与发布编译

CMAKE如何编译具有不同标志的静态/对象库

Makefile:相似文件的不同标志

如何将 Jenkins 构建计划更改为不同的时间?

makefile 编译多个源,具有不同的标志

在 CMake 项目中动态更改编译器标志