如何在GitHub Actions中配置Visual Studio开发者命令提示符?
在GitHub Actions中配置CMake + Ninja + MSVC环境
方法1:用官方动作自动配置(推荐)
GitHub Actions有现成的动作可以自动搞定MSVC环境配置,不用手动找vcvarsall.bat的路径,兼容性更强。
示例Workflow配置:
name: Build with CMake+Ninja+MSVC on: [push, pull_request] jobs: build: runs-on: windows-2019 # 对应你提到的VS2019 Community版本 steps: - name: 拉取代码 uses: actions/checkout@v4 - name: 配置MSVC命令行环境 uses: ilammy/msvc-dev-cmd@v1 with: arch: x64 # 可按需指定架构:x86、x64、arm、arm64 - name: 安装Ninja uses: seanmiddleditch/gha-setup-ninja@v4 - name: CMake配置 run: cmake -S . -B build -G Ninja # 如需明确指定编译器,可追加:-DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl - name: 编译项目 run: cmake --build build --config Release
这个方法里,ilammy/msvc-dev-cmd会自动定位对应VS版本的vcvarsall.bat并执行,把MSVC的环境变量配置好,后续的CMake和编译命令都能直接调用cl编译器和Ninja。
方法2:手动调用vcvarsall.bat
如果你一定要手动指定你给出的vcvarsall路径,也可以直接在CMD会话里执行脚本并串联后续命令:
示例Workflow配置:
name: Build with Manual MSVC Setup on: [push, pull_request] jobs: build: runs-on: windows-2019 steps: - name: 拉取代码 uses: actions/checkout@v4 - name: 安装Ninja run: choco install ninja -y - name: 配置MSVC环境并执行编译 shell: cmd run: | "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 && ^ cmake -S . -B build -G Ninja && ^ cmake --build build --config Release
注意这里要用shell: cmd,因为vcvarsall是批处理脚本,必须在同一个CMD会话里执行后续的CMake命令,才能继承到MSVC的环境变量。如果用PowerShell的话,需要把命令包在cmd /c里执行。
额外注意事项
- 如果你用
windows-latestrunner,对应的是最新版Visual Studio(比如VS2022),vcvarsall的路径会有所不同,所以指定windows-2019才能匹配你给出的路径。 - Ninja必须提前安装,用Chocolatey或者专门的setup动作都可以。
- 只要vcvarsall配置好环境,CMake会自动识别MSVC编译器,不用额外指定。
内容的提问来源于stack exchange,提问作者jpr42
相关产品推荐
相关产品推荐

