LNK1181错误从VS 2008转换为VS 2012

时间:2014-06-27 17:03:13

标签: c++ visual-studio-2012 linker-errors

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

我收到以下链接器错误:

1>  Debug_Win32\XYZ.obj
1>  Debug_Win32\ABC.obj 
1>  
1>  Starting pass 1
1>LINK : fatal error LNK1181: cannot open input file ',0.obj'

我没有名为",0"的文件。在项目中,所以我对它的来源感到困惑。

我已经完成了一些搜索并尝试了所有我见过的各种修补程序(修复VS 2012,删除所有构建输出目录,删除Microsoft.Cpp.X32.user文件等),但是没有运气。

知道是什么导致这个或我如何尝试调试它?

编辑:如果子系统标志设置为"未设置",更改它的效果很好。谢谢!

1 个答案:

答案 0 :(得分:3)

  

项目中没有名为“,0”的文件,所以我对它的来源感到困惑。

它来自链接器的/ SUBSYSTEM选项。在VS2012中哪个更明确,默认情况下它不再支持XP,因此明确了解子系统版本号。 6,0适用于现代Windows版本,,0来自哪里。

右键单击您的项目,属性,链接器,系统。您必须更改子系统设置,它不能是“未设置”或空白。为控制台模式应用选择“控制台”,为GUI应用或DLL选择“Windows”。