Visual Studio:LINK:致命错误LNK1181:无法打开输入文件

Kom*_*omn 73 c++ compiler-construction visual-studio

我一直在Visual Studio 2010中遇到一个奇怪的错误.

我有一个解决方案,包括一个编译为静态库的项目,另一个项目非常简单,但依赖于这个库.

有时,在最后几天非常频繁,在重建解决方案或仅使用1-3个已更改的源文件进行编译之后,我收到以下错误:

2>LINK : fatal error LNK1181: cannot open input file 'thelibrary.lib'
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========
Run Code Online (Sandbox Code Playgroud)

编译thelibrary.lib成功的地方没有任何错误或警告.

我试过清理解决方案,但这并不总是有效.

  • 这有什么不对?

小智 40

在Linker中,通用的附加库目录,将目录添加到链接器,输入中包含的.dll或.libs.如果将其放在VC++目录,库目录中,它将不起作用.


小智 11

去:

Project properties -> Linker -> General -> Link Library Dependencies set No.
Run Code Online (Sandbox Code Playgroud)

  • 如果我真的需要链接的依赖库呢?(这不是首先将lib指定为依赖项的主要原因) (4认同)

Sas*_*sha 9

我只能看到这里发生的一件事情:你没有在你的项目中对thelibrary.lib设置正确的依赖,这意味着thelibrary.lib是以错误的顺序构建的(或者如果你有超过1个CPU构建配置的话,同时也是如此)这也可以解释错误的随机性).(您可以在以下菜单中更改项目依赖性:菜单 - >项目 - >项目依赖项)


Cli*_*ppy 7

我最近遇到了同样的错误.一些挖掘提出了这个:http: //support.microsoft.com/kb/815645

基本上,如果.lib的路径中有空格,那就太糟糕了.不知道这是不是正在发生的事情,但似乎有可能.

修复是1)将lib引用放在"引号"中,或者2)将lib的路径添加到库目录(配置属性>> VC++目录).


ale*_*xkr 5

我在 VS 2010 和 VS 2012 中都遇到了同样的问题。在我的系统上,第一个静态库被构建,然后在主项目开始构建时被立即删除。

问题是几个项目的公共中间文件夹。只需为每个项目分配单独的中间文件夹。

此处阅读更多相关信息