为什么在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:
- closuresVisual Studio。 Windows注销
- login,重新打开Visual Studio
- 按照惯例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这个来解决问题希望它会帮助…
谢谢