为什么在Visual Studio中编译C ++项目时发生致命错误“LNK1104:无法打开文件”C:\ Program.obj“”?

我在Visual Studio 2008中创build了一个新的C ++项目。没有编写代码。 只有项目设置已被更改。

当我编译该项目时,我收到以下致命错误:

致命错误LNK1104:无法打开文件'C:\ Program.obj'

这个特定的问题是由指定一个依赖到一个lib文件,其path中有空格。 该path需要用引号括起来才能正确编译项目。

在项目属性configuration属性 – >链接器 – >input选项卡上,有一个附加依赖项属性。 此问题已通过将此属性更改为:

C:\ Program Files \ sofware sdk \ lib \ library.lib

至:

“C:\ Program Files \ sofware sdk \ lib \ library.lib”

我在哪里添加报价。

如果文件仍在运行,就会发生这种情况。

:-1:错误:LNK1104:无法打开文件'debug \ ****。exe'

closures并重新打开Visual Studio后,问题就消失了。 不知道为什么发生这个问题,但这可能值得一试。

这是在VS 2013旗舰版,Windows 8.1。

我有同样的问题。它由一个“,”在一个额外的库path的文件夹的名称造成的。它通过更改附加的库path解决。

我的问题是一个缺less.lib扩展名,我只是连接到mylib和VS决定寻找mylib.obj

还检查你没有打开这个: configuration属性 – > C / C ++ – >预处理器 – >预处理到文件

就我而言,这是一个误导的参考。 项目引用了另一个项目的输出,但后者没有输出前者正在寻找的文件。

对于一个assembly项目(ProjectName – > Build Dependencies – > Build Customizations – > masm(selected)),将生成预处理源列表设置为True也对我造成了这个问题,清除该设置修复了它。 VS2013在这里。

我遇到了连接器抱怨主要可执行文件丢失的问题。 这发生在我们的解决scheme端口到新的Visual Studio 2013 。 解决scheme是多种pipe理和未pipe理的项目/代码组合。 问题(和修复)最终成为解决scheme文件夹中缺less的app.config文件。 花了一天的时间来找出这一个:(因为输出日志不是很有帮助。

我检查了我的所有设置根据此列表: http : //msdn.microsoft.com/en-us/library/ts7eyw4s.aspx#feedback 。 这对我和我的情况是有帮助的,我发现项目属性的链接依赖性是双引号的,不应该在那里。

我有同样的错误,只是与我已经安装的Nuget包(一个不是头只),然后尝试卸载。
我的错在于我还包括一个我刚刚卸载的.cpp文件(非常愚蠢,是的)的包头。
我甚至在Project -> Properties -> Linker -> General删除了额外的库目录链接,但当然没有用,因为我仍然试图引用不存在的头。

在这种情况下肯定是一个混乱的错误消息,因为头名称是<boost/filesystem.hpp>但错误给了我"cannot open file 'llibboost_filesystem-vc140-mt-gd-1_59.lib'"并没有行号或任何东西。

我在回答,因为我没有看到其他人列出的这个特定解决scheme。

显然,我的杀毒软件(Ad-Aware)正在标记一个我的项目依赖的DLL,并将其删除。 即使在排除DLL所在的目录之后,仍会继续相同的行为,直到重新启动计算机。

我有同样的问题,但我的情况解决scheme没有列出答案。 我的防病毒程序(AVG)将文件MyProg.exe确定为病毒,并将其放入“病毒库”中。 你需要检查这个库,如果有文件 – 然后只是恢复它。 它帮助我。

解决scheme1(对于我的情况):重新启动Windows资源pipe理器进程(是的,Windows文件pipe理器)。

解决scheme2:

  1. closuresVisual Studio。 Windows注销
  2. login,重新打开Visual Studio
  3. 按照惯例build造。 它现在构build并可以访问有问题的文件。

我认为有时文件系统或者谁控制它会被丢失。 重新启动Windows会话之前,试图杀死僵尸msbuild32.exe进程,重新启动Visual Studio,甚至检查没有显示问题文件。 没有构buildconfiguration问题。 它现在偶然发生。 Windows中的一些内部事物没有修复,需要重启。

在我的情况下,我用GLMreplace了以前的Game Engine Graphics课程的math库文件。 问题是我没有将它们添加到Visual Studio的解决scheme资源pipe理器中的项目(即使它们在项目存储库中)。

我有这个问题与LNK2038错误一起,在这个post后面隔离RELEASE和DEBUG DLLs。 在这个过程中,我已经清理了这些依赖关系所在的整个文件夹。

幸运的是,我有所有这些文件的备份,并得到该错误被扔回DEBUG文件夹解决问题的文件。 错误代码在某种程度上是误导性的,因为我不得不花费大量的时间从这篇文章的答案之一来看这个技巧。

希望这个答案,帮助有需要的人。

我解决了这个问题, 一个现有的项目 添加 我的解决scheme中 ,这是我第一次忘记添加的。

我有同样的错误:

 fatal error LNK1104: cannot open file 'GTest.lib;' 

这是由于; 最后。 如果你有多个库,它们应该用空格(空格键)分开,不要用逗号或分号。

所以不要使用; 或者在项目属性>>configuration属性>>链接器>>input中列出库时的任何其他内容

我遇到了同样的问题,我刚刚把代码复制到了新项目中,并开始构build。 其他一些错误开始了。 错误C4996:'fopen':这个函数或variables可能是不安全的。 考虑使用fopen_s代替

为了再次解决这个问题,我已经在Project项目中添加了我的一个属性,如下所示。 项目 – >属性 – >configuration属性 – > c / c ++。 在这个类别中有字段名称预处理器定义我已经添加_CRT_SECURE_NO_WARNINGS这个来解决问题希望它会帮助…

谢谢