LNK1181:无法打开输入文件

时间:2018-09-27 13:21:33

标签: visual-studio linker-errors

我已经使用Visual Studio 2010在项目A中成功生成了一个名为“ myLibrary.lib”的64位库。

现在,我有另一个使用“ myLibrary.lib”的项目B。我在项目B中包括了使用“ myLibrary.lib”所需的头文件。将.lib添加到我的项目中,并在Linker> Input> Additional Dependencies中添加了一个条目。

当我尝试构建时,出现错误“链接:致命错误LNK1181:无法打开输入文件myLibrary.lib”。

我尝试过的事情:

  • 在链接器>常规>附加中尝试到我的.lib文件的路径 图书馆目录
    如果执行此操作,那么从.lib
  • 中会得到我正在使用的错误,这些错误是未引用的
  • 试图给我的.lib名称加上引号, 链接器>输入>其他依赖项
    如果执行此操作,那么从.lib
  • 中会得到我正在使用的错误,这些错误是未引用的
  • 确保我的库名中没有空格
  • 已检查的文件权限
  • 尝试在Visual Studio 2017上构建并且仍然出现相同的错误

还有其他可以解决此错误的方法吗?

1 个答案:

答案 0 :(得分:0)

根据您尝试过的内容,看来您正在朝正确的方向前进。几个月前,我在VS 2010中遇到了这个问题。我遇到这样的错误

Error   1940    error LNK1181: cannot open input file 'element.lib' 

我无法理解,怎么回事,程序正在搜索element.lib的文件在那个文件夹中,但是我不明白,为什么它显示错误,然后我尝试了更多的事情,如下所列

  1. 通过以下方式禁用增量链接
  

->项目属性   ->配置属性   ->链接器(常规)   ->启用增量链接->“否(/ INCREMENTAL:NO)”

  1. cvtres.exe,C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cvtres.exe中的文件错误,而C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\cvtres.exe中的文件错误,请确保在这两个位置都使用最新版本。

  2. 这是一个棘手的问题,LNK1181的另一个可能原因是带有嵌入空格的长文件名未用引号引起来。在这种情况下,链接器将仅识别到第一个空格的文件名,然后假定文件扩展名为.obj。确保包含文件路径的文件名长度小于为Windows操作系统指定的字符,即128个字符,包括空格...