前言
因为一些原因,需要从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