【问题标题】:Maximum command line length in git bashgit bash 中的最大命令行长度
【发布时间】:2021-01-21 01:30:04
【问题描述】:

看起来有 8192 个(或更多)字符的硬连线限制,这大大少于报告的 32000 个

getconf ARG_MAX

我使用git bash 作为在Windows 上运行GNU make 的一种非常方便(因为部署在受控的主流方式)的方法。有时会妨碍我的进程的唯一问题是命令行到gcc 的长度,由于一些不可更改的因素,它有几十到一百个-Iinclude_dir 参数。如果您认为通过改变后者的复杂性来规避问题会是更明智的选择,那么我完全愿意为此提供解决方案。

【问题讨论】:

  • 创建一个目录来保存(符号链接)标题。只在 GCC 的命令行上指定该目录。如果某些标头采用#include "subdir/header.h" 的形式,它可能不会那么简单——您需要一个主包含目录$PROJECT/include 和一个子目录subdir,其中包含符号链接header.h,它指向哪里原件找到了。可能仍然存在问题,但即使将“最多 100”减少到 10 以下也将是一项重大改进。
  • 不使用 Windows 总是一个很好的解决方案。

标签: gcc makefile command-line command-line-arguments git-bash


【解决方案1】:

https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/830473 Windows 上的命令行长度限制为 2047 或 8191,具体取决于操作系统版本。

由于此限制,许多 Windows 开发人员工具接受“response files”,它们是包含参数的文本文件。 GCC supports this 也是。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2021-03-16
    • 2022-12-11
    • 2018-11-16
    • 2014-03-16
    相关资源
    最近更新 更多