windows服务器下jenkins c语言打包的一些经验share

前言

因为一些原因,需要从linux环境下的jenkins 打包c语言转移到使用windows环境下的jenkins打包c语言,从转移的过程中,发现了一些问题和解决方案,故在此和各位运维工程师分享一下。

一、windows 下的c语言编译环境配置

这边就不在叙述了,大家可以参考这篇 文章

二、使用make all 进行打包,报系统找不到指定的文件

这个问题在linux下不存在,但不知道为啥在windows 下会存在这个问题,于是从报错的信息入手:

process_begin: CreateProcess(NULL, ".../.../startup/system_nrf52840.c ", ) failed 这个一看就是文件的路径不对,需要再makefile 文件的头部加入 SHELL=cmd.exe

在 Makefile 中,SHELL 变量用于指定将要执行命令的 shell 程序。在 Unix/Linux 环境下,默认的 shell 通常是 /bin/sh 或者其他 POSIX 兼容的 shell,比如 bash。在 Windows 环境下,默认的 shell 是 cmd.exe 或者 PowerShell。

通过设置 SHELL=cmd.exe,你明确指定 Makefile 中的所有命令都将由 Windows 的 cmd.exe 解释和执行。

当你在 Makefile 中使用 SHELL=cmd.exe 时,所有的命令行操作(如 del、rmdir、copy 等)都将在 Windows 的 cmd.exe 环境中执行,而不是在 Unix/Linux 或其他 shell 环境中执行。

cmd.exe 是 Windows 的命令解释器,它支持批处理文件和 Windows 的命令行特性。你可以在 Makefile 中使用 Windows 命令行特有的命令和语法

三、使用make clean 无法清除文件

make clean 无法清除文件,导致二次打包的时候,打包的还是历史的东西,同时打包速度也很快,感觉不太对劲,看了makefile 文件发现:

这个rm -rf 明明是linux 删除命令,怪不得在windows 下无效

本想着用windows 的del 命令去替换,可替换了,发现还是没用,估计是这个项目之前都考虑linux ,很多命令都是用linux 命令,于是另辟思路,我在打包完,直接把工作空间删掉,就不用make clean 了,多简单明了,反正每次构建都需要去拉取代码,这样子稍微花点时间,但满足了我的要求。

总结

以上是我的初级运维工程师的经验分享,很多的问题,多花点时间,网上找找资料还是可以解决的!!!!

相关推荐
长天一色1 小时前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
sukalot1 小时前
windows C++-windows C++-使用任务和 XML HTTP 请求进行连接(二)
c++·windows
醉颜凉1 小时前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统
大道归简2 小时前
Docker 命令从入门到入门:从 Windows 到容器的完美类比
windows·docker·容器
前端张三2 小时前
Mac 电脑pink 后端ip地址进行本地联调
服务器·tcp/ip·macos
第六五2 小时前
ubuntu命令行连接wifi
服务器·ubuntu
CXDNW2 小时前
【网络篇】计算机网络——应用层详述(笔记)
服务器·笔记·计算机网络·http·web·cdn·dns
没有余地 EliasJie2 小时前
Windows Ubuntu下搭建深度学习Pytorch训练框架与转换环境TensorRT
pytorch·windows·深度学习·ubuntu·pycharm·conda·tensorflow
zeruns8022 小时前
如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程
linux·运维·服务器·docker·网站
北城青2 小时前
WebRTC Connection Negotiate解决
运维·服务器·webrtc