You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改GitHub Actions Windows runner的PowerShell命令长度限制?

解决GitHub Actions Windows Runner中长gcc链接命令被截断的问题

优先方案:使用GCC响应文件(绕过命令行长度限制)

这是最可靠的跨平台解决方案,完全避开命令行长度限制:

  • 在Makefile中添加生成响应文件的规则,将所有链接参数写入.rsp文件:
    # 替换为你的实际目标文件变量
    OBJECTS := obj/file1.o obj/file2.o ...
    
    # 生成链接参数响应文件
    link_args.rsp: $(OBJECTS)
        @echo $(LDFLAGS) $^ $(LDLIBS) > $@
    
    # 修改链接规则,使用响应文件
    your_target_executable: link_args.rsp
        $(CC) @link_args.rsp -o $@
    
  • GCC会自动读取@link_args.rsp中的所有参数,无论参数总长度多长都不会触发截断问题,且该方法在Ubuntu和本地Windows环境同样适用。

备选方案:修改Windows系统命令行长度限制

若必须通过调整系统配置解决,可在GitHub Actions工作流中添加PowerShell步骤修改注册表(Windows runner默认具备管理员权限):

  • 添加以下步骤到你的GitHub Actions工作流:
    - name: Increase command line length limit
      shell: powershell
      run: |
        # 提升命令行长度上限到65536字符(Windows 10 1607及以上版本支持)
        Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Command Processor" -Name "CommandLineLengthLimit" -Value 65536 -Type DWord
        # 启用系统长路径支持
        Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -Type DWord
    
  • 注意:修改注册表后需重启当前PowerShell会话才能生效,可在后续步骤中重新启动shell或直接在修改后的步骤中执行构建命令。

内容的提问来源于stack exchange,提问作者Wally Barnum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 07:53:12