首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从VS 2008到VS 2012的LNK1181错误转换

从VS 2008到VS 2012的LNK1181错误转换
EN

Stack Overflow用户
提问于 2014-06-27 17:03:13
回答 1查看 75关注 0票数 0

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

我得到以下链接器错误:

代码语言:javascript
复制
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用户文件等),但没有成功。

知道是什么原因造成的吗?或者我如何尝试调试它?

编辑:将子系统标志设置为"Not“,更改它非常有效。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-27 19:21:55

我在这个项目中没有一个名为",0“的文件,所以我不知道它是从哪里来的。

它来自链接器的/SUBSYSTEM选项。这在VS2012中更显着,它在默认情况下不再支持XP,因此可以显式地了解子系统版本号。现代Windows版本的6,0,这就是,0的来历。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24457203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档