将解决方案 C++ 从 VS2005 升级到 VS2012 出现错误 LNK1181

Posted

技术标签:

【中文标题】将解决方案 C++ 从 VS2005 升级到 VS2012 出现错误 LNK1181【英文标题】:Upgrading a solution C++ from VS2005 to VS2012 have an error LNK1181 【发布时间】:2016-05-12 17:13:51 【问题描述】:

我正在升级一个带有一些 dll 项目和一个 exe 控制台外壳的 C++ 解决方案,实际上该项目是在 Visual Studio 2005 中构建的,这个项目非常古老且非常明智。这与我所有的决定一起工作,以与他的 API 进行通信,并将他的事件发送到我在 C# 中的应用程序。今天我收到了开始将项目升级到 Visual Studio 2012 的标志,但升级后我的所有项目都收到 LNK 1181 错误,找不到 nameproject.res 文件,但我在任何项目中都没有一个 .res 文件,恰好是一个 .rc 并且 25 个项目中没有一个构建。

Error   6   error LNK1181: cannot open input file 'D:\Projects\DeviceManager\Branches\DSR865-BRB_DeviceManager\C-Fontes\tmp\DeviceManagerClassLibrary\Release\DeviceManagerClassLibrary.res'

我不知道我可以做些什么来构建这些项目!

【问题讨论】:

【参考方案1】:

在链接之前先编译 .rc 文件。

http://www.winasm.net/forum/index.php?showtopic=154

【讨论】:

我已经构建了 RC,但是在 winasm 的答案中,那个家伙想要组装 RC,我在 Visual Studio 2012 中没有看到组装的按钮或选项。我已经构建了 RC 并尝试构建项目后,但收到相同的错误。 在我构建 RC 时读取输出我看到这个 res = "D:\Projects\DeviceManager\Branches\DSR865-BRB_DeviceManager\C-Fontes\tmp\DeviceManagerClassLibrary\Release\\DeviceManagerClassLibrary.res" 在我尝试编译时有一个 \\,这会导致错误。谢谢@Dan,在你的帮助下我可以看到这个!【参考方案2】:

为了纠正这个问题,我必须从项目中排除 RC 文件,并创建一个带有版本的新 RC 文件,并将所有其他内容导入新的 RC。我不知道,但我认为 VS 2005 RC 文件与 VS 2012 不兼容。完成此操作后,项目构建并创建 .res 文件。

【讨论】:

以上是关于将解决方案 C++ 从 VS2005 升级到 VS2012 出现错误 LNK1181的主要内容,如果未能解决你的问题,请参考以下文章

将 C++ 从 VS2003 迁移到 VS2005 需要哪些代码更改?

在将大型 C++ 程序从 VS2005 转换为 VS2008 之前我应该​​知道啥?

将crm 4插件项目从visual studio 2005升级到visual studio 2010

将项目从 VS2003 迁移到 VS2005 时应该注意啥

从 Visual Studio C++ 6.0 到 VS 2008?

vs2005 开发的WEB项目如何发布到IIS上