我在Visual Studio 2008中创建了一个新的C++项目,目前还没有编写任何代码,只改变了项目设置。
当我编译该项目时,我收到以下致命错误:
致命错误 LNK1104: 无法打开文件'C:\Program.obj'
我在Visual Studio 2008中创建了一个新的C++项目,目前还没有编写任何代码,只改变了项目设置。
当我编译该项目时,我收到以下致命错误:
致命错误 LNK1104: 无法打开文件'C:\Program.obj'
taskkill /f /im [nameOfExe]
/f: 强制关闭任务。 /im: 下一个参数是图像名称,也就是可执行文件的名称,例如 Program.exe。
在我的情况下,它是路径长度(包括文件名)。
..\..\..\..\..\..\..\SWX\Binary\VS2008\Output\Win32\Debug\boost_unit_test_framework-vc90-mt-gd-1_57.lib;
..\..\..\..\..\..\..\SWX\Binary\VS2008\Output\Win32\Release\boost_unit_test_framework-vc90-mt-1_57.lib;
==> 短一字符。
链接器 -> 输入 -> 附加依赖项
所以对我来说问题是路径+文件名字符串的总大小太长了!
我按照这个列表检查了所有的设置:http://msdn.microsoft.com/en-us/library/ts7eyw4s.aspx#feedback。对于我的情况,这对我很有帮助,我发现项目属性的链接依赖项中有双引号,而不应该有。
我尝试了上面的解决方案,但对我没有用。 所以我重命名了exe并重新构建了解决方案。 这对我有用。
我在处理LNK2038错误时遇到了这个问题,按照post中的方法将RELEASE和DEBUG DLLs分开。在此过程中,我清理了存放这些依赖项的整个文件夹。
幸运的是,我有所有这些文件的备份,并将导致此错误的文件放回DEBUG文件夹以解决问题。错误代码在某种程度上是误导性的,因为我不得不花费很多时间才能从这篇文章的答案中获得这个提示。
希望这个答案能帮助需要的人。