批处理命令set的一个小问题:设置变量名与变量值只差一个文件扩展名
来源:互联网 发布:搜狗浏览器for mac 编辑:程序博客网 时间:2024/06/05 02:17
今天想写一个批处理文件,简化VC编译过程,主要内容如下
@echo off
set LINK=link.exe
set LFLAGS=/nologo /dll /out:dlltest2.dll /implib:dlltest2.lib
%LINK% %LFLAGS% dlltest2.obj
结果无论怎么调试,都会冒出下面的这个错误
LINK : fatal error LNK1181: cannot open input file "link.exe"
link.exe明明好好的,而且也不是什么输入文件啊,检查其他部分也是完全没有问题,dlltest2.obj已经编译生成。然后重新在控制台窗口上直接敲命令
link.exe /nologo /dll /out:dlltest2.dll /implib:dlltest2.lib dlltest2.obj
一切OK,没有问题。
难道这个批处理有什么猫腻不成,最后费了老半天劲,终于找到原因
set LINK=link.exe
这句话就是症结所在,LINK与link.exe同名了,把LINK改为LNK后问题解决。
我发现这个错误可能是由于批处理变量设置死循环后的问题,实际在执行的时候与下面这条命令等价(不能确定,只是发现错误结果相同)
link link.exe /nologo /dll /out:dlltest2.dll /implib:dlltest2.lib dlltest2.obj
至于变量设置错误后的详细原因我也没有完全明白,谁有兴趣可以研究一下告诉我。谢谢。
参考文档:
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true
- 批处理命令set的一个小问题:设置变量名与变量值只差一个文件扩展名
- 变量名与变量值
- 关于一个变量值的问题
- Python中变量名与变量值的关系
- 一个struts2小例子:使用 及javascript中显示变量值的问题
- 一个将数组的键与值转换为相应的变量与变量值的输出的函数介绍
- 使用get set方法设置变量时,最开始申明的变量值不会随着get set而改变
- 根据变量值获取变量名
- 通过变量名获取变量值
- c++中变量名和变量值
- 批处理中的变量与命令set的用法
- 批处理中的变量与命令set的用法
- 批处理中的变量与命令set的用法
- bat批处理中的变量与命令set的用法
- windows批处理中的变量与命令set的用法
- windows批处理中的变量与命令set的用法
- WindowsBatch与LinuxShell比较[变量值来自文件或命令]
- 批处理中set 设置变量的用法
- ImageList研究
- VS2008不能调试
- CreateWindowEx和CreateWindow的区别
- Immutable ---- java多线程设计模式(二)
- 近期学习方向和内容!
- 批处理命令set的一个小问题:设置变量名与变量值只差一个文件扩展名
- MenuStrip基本代码
- (原)ETB简述
- SCO UNIX基本命令(转贴)
- 无法释怀
- TD工程项目定制过程
- web
- 思绪点滴
- ToolStrip基本代码