我在使用大量输入文件运行ocamldep
时出现臭名昭着的Argument list too long
错误。ocamldep:参数列表太长
只有在使用本机Windows OCaml编译器+ Cygwin时才会出现此问题:在此配置中,ARG_MAX
返回32000,这是一个非常低的值,我认为这是Windows本身强加的限制,而不是Cygwin。
对于这种类型的错误通常的解决方法是使用xargs
,如果我们可以分割的参数,例如使用ls
或rm
时一样,但我不知道它如何与ocamldep
工作。既然它期望在命令行中同时给出所有文件(为了正确计算依赖关系),并且似乎没有选择给文件中的文件列表(如在-f filelist.txt
中),是否有办法避免这个问题?
这不是数量参数,但扩展命令行的总大小不得超过'ARG_MAX'。至少看起来是这样的,因为我将扩展的命令行复制到一个文件中,它略大于32 KiB(在我的Linux上'ARG_MAX'实际上是2MiB,具有128 KiB缓冲区)。其中80%是一遍又一遍重复过长的目录名称,顺便说一句。不理想,但我们仍然远离32k文件... – anol