展开的命令行太长
expanded command line too long
本文关键字:命令行 更新时间:2023-10-16
在使用MSVC9时,我在链接阶段遇到了一个问题。上面写着:
NMAKE:致命错误U1095:扩展的命令行link.exe…太长
您可以让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
本质上,您只需要一个普通的nmake命令行,但这对<<
标记告诉nmake将选项写入文件(它们被该文件的名称替换),然后@
告诉link从该文件读取参数。
KEEP选项(可能带有指定的文件名)对调试很有用-如果链接barfs,您可以查看文件中实际传递给它的内容。
对于工具中固定的命令行长度,您无能为力。您可能希望尝试将对象文件合并为几个库,然后执行最后的链接并将这些库链接在一起。这将在Makefile中引入另一个步骤,但会绕过命令行过长的错误。
哈哈,这很糟糕,但我们需要更多信息来回答您的问题。对于初学者来说,基本上是说调用链接器的命令行比cmd.exe本身允许的缓冲区大。如果我没有记错的话,可能有一种方法可以让命令shell在命令行上使用更大的缓冲区。或者,您可以将shell更改为windows powershell,看看这是否可行。
相关文章:
- 从命令行c++发送文本文件名
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 数组长度,为什么从命令行获取时不能使用它?
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 通过 Openssl 命令行加密,通过 c++ 解密
- CMake "--target install"无需"--build"命令行
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 使用 C++ 将命令行参数拆分为参数/向量
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- LLVM | codegen 用于带有命令行选项的程序输入功能
- 如何在OMNET++中添加专门的命令行参数?
- Makefile g++ 使用命令行中的 -D 变量进行编译,默认值
- 在命令行中创建快捷命令
- 在命令行上将输入显示到数组中时如何删除 ./a.out?
- C++命令行提示符不应重复
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- 通过命令行在Visual Studio中编译单个独立文件