使用 Jenkins 进行C++ 项目持续集成

本文分享了一次使用Jenkins进行C++项目持续集成时遇到的问题:本地编译正常,但Jenkins编译失败。通过排查发现原因是VS2010编译时生成的*.user文件被提交到了SVN,导致Jenkins使用了错误的环境变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    Jenkins 是一个持续集成的工具上,想必大家都有所了解,这里就不再赘述。

    最近在做一个C++项目,项目代码使用SVN管理。提交项目代码时,项目成员为了方面,基本上把所有文件(除了中间文件)一股脑地提交了,这就给后面使用Jenkins进行持续集成了挖了一个坑。最后出现了一个现象——本地编译,没有问题,但Jenkins编译死活不成功。

    分析原因:自定义环境变量中使用了一个QTDIR,对应的是QT库安装路径。Jenkins提示找不以moc(QT的一个编译工具),但在Jenkins服务器上明明已经配置了该环境变量。

    经过查找,发现了VS 2010在编译时会生成一个*.user的文件,在该文件中记录了本地环境变量的配置内容,而这个文件又被项目组成员上传至SVN,这就导致了Jenkins编译时 使用的环境变量内容是*.user中的,而非Jenkins服务器上配置的。 因为Jenkins在编译VS工程(*.sln)时不会生成*.user文件,而VS2010在编译时会生成*.user文件。  这就是Jenkins编译失败,而直接用vs2010却可以编译成功的原因。

    以下是*.user 的内容:


    一个个小小的失误,浪费了一个多小时的时间来解决,并且在百度上基本搜索不到该错误。做开发真是应该事无巨细呀!献给所有的码农。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值