扩展的命令行太长

Ste*_*sen 4 c++ linker nmake

在使用 MSVC9 时,我在链接阶段遇到了问题。它说:

NMAKE:致命错误 U1095:扩展命令行 link.exe 。. . 太长

Ala*_*kes 8

您可以让 nmake 将命令行参数写入文件,然后使用链接选项从文件中读取参数。

寻找“内联文件”,例如http://msdn.microsoft.com/en-us/library/z440c98k(v=vs.80).aspx

自从我这样做已经很长时间了,但我记得它的用法是这样的:

foo.exe : foo1.obj foo2.obj foo3.obj
    link.exe @<<
foo1.obj
foo2.obj foo3.obj
... more arguments, macros etc on one or more lines
<<
    rem other commands go here if you want
Run Code Online (Sandbox Code Playgroud)

本质上,您只有一个普通的 nmake 命令行,但是这对<<标记告诉 nmake 将选项写入文件(并且它们被该文件的名称替换),然后@告诉 link 从该文件读取参数。

KEEP 选项(可能带有指定的文件名)可用于调试 - 如果链接 barfs,您可以查看文件以查看实际传递给它的内容。


Rya*_*yan -1

哈哈,这很糟糕,但我们需要更多信息来回答您的问题。对于初学者来说,操作系统基本上是说调用链接器的命令行大于 cmd.exe 本身允许的缓冲区。如果我没记错的话,可能有一种方法可以使命令 shell 在命令行上使用更大的缓冲区。或者您可以将 shell 更改为 windows powershell,看看是否可行。