从vs2008到vs2012转换时出现LNK1181错误

LNK1181 error converting from VS 2008 to VS 2012

本文关键字:LNK1181 错误 转换 vs2008 vs2012      更新时间:2023-10-16

我在VS2008中有一个c++ DLL,我正试图转换为VS2012。Windows 7 64位,但编译为32位应用程序。

我得到以下链接错误:

1>  Debug_Win32XYZ.obj
1>  Debug_Win32ABC.obj 
1>  
1>  Starting pass 1
1>LINK : fatal error LNK1181: cannot open input file ',0.obj'

我在项目中没有一个名为",0"的文件,所以我很困惑,因为它来自哪里。

我已经做了一些搜索并尝试了我见过的所有各种修复(修复VS 2012,删除所有构建输出目录,删除microsoft . cp . x32)。用户文件等),但运气不好。

任何想法是什么原因导致这个或如何我可以尝试和调试它?

编辑:有子系统标志设置为"未设置",改变它工作得很好。谢谢!

我在项目中没有一个名为",0"的文件,所以我很困惑,因为它来自哪里。

它来自于链接器的/子系统选项。这在VS2012中是更明确的,它不再默认支持XP,所以得到明确的子系统版本号。6,0用于现代Windows版本,这就是,0的来源。

右键单击您的项目,属性,链接器,系统。必须更改子系统设置,不能为"Not Set"或空白。对于控制台模式应用程序,选择"Console",对于GUI应用程序或DLL,选择"Windows"。