我正在使用包含
的批处理文件进行编译@echo off
set link=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\link
"%link%" external_input.obj periodic_dinger.obj flagger.obj monitor.obj main.obj libGui.lib libCore.lib libCint.lib libRIO.lib libNet.lib libHist.lib libGraf.lib libGraf3D.lib libGpad.lib libTree.lib libRint.lib libPostscript.lib libMatrix.lib libPhysics.lib libMathCore.lib libThread.lib
所有对象和库都在同一目录中,这是我正在执行批处理文件的目录,以及批处理文件所在的目录。我已经尝试将当前目录添加到/LIBPATH:
,但没有运气。我的LIB
环境变量是
C:\Users\jroth\Data\online_monitor_v.0.5>echo %LIB%
"C:\Program Files\ (x86)\Microsoft Visual Studio 11.0\VC\LIB";"C:\Program Files
(x86)\Microsoft Visual Studio 11.0\VC\ATLMFC\LIB";"C:\Program Files (x86)\Window
s Kits\8.0\lib\win8\um\x86";
我确保所有内容都被引用。一切都没有引用,同样的错误出现了。错误是逐字的
C:\Users\jroth\Data\online_monitor_v.0.5>make
Microsoft (R) Incremental Linker Version 11.00.50727.1
Copyright (C) Microsoft Corporation. All rights reserved.
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\link
LINK : fatal error LNK1181: cannot open input file 'C:\Program.obj'
make.bat
是我用来链接它的批处理文件的名称,而不是makefile。
在执行任何此操作之前,我正在运行vcvarsall.bat
。
答案 0 :(得分:3)
问题在于您使用的环境变量link
。 MS链接器也将此变量用于标志。
来自https://msdn.microsoft.com/en-us/library/6y6t9esh.aspx:
LINK工具使用以下环境变量:
- LINK,如果已定义。在处理命令行之前,LINK工具处理LINK环境变量中定义的选项和参数。
因此,您无法使用set link=...
,您必须使用其他名称。 _link
会很好。