0

我在尝试构建时遇到链接器错误(有一堆......这是一个这样的):

error LNK2005: "public: int __cdecl std::ios_base::rdstate(void)const " (?rdstate@ios_base@std@@QEBAHXZ) already defined in msvcprt.lib(MSVCP90.dll)

我有一个 C 项目:

  • 配置类型:静态库 (.lib)
  • MFC 的使用:使用标准 Windows 库
  • 使用 ATL:不使用 ATL
  • 运行时库:多线程 DLL (/MD)

我有一个 C++ 项目:

  • 配置类型:动态库 (.dll)
  • MFC 的使用:使用标准 Windows 库
  • ATL 的使用:到 ATL 的动态链接
  • 运行时库:多线程 DLL (/MD)

我有一个依赖于上述两个项目的 C++/CLI 项目:

  • 配置类型:动态库 (.dll)
  • MFC 的使用:使用标准 Windows 库
  • ATL 的使用:到 ATL 的动态链接
  • 运行时库:多线程 DLL (/MD)
  • 公共语言运行时支持 (/clr)
  • 这链接到 C 项目 .lib
  • 这有一个对 C++ DLL 的项目引用

这些是使用 Visual 2010 构建的,但使用 v3.5 工具集(因此使用 9.0)。

我见过的大多数解决方案都表明运行时库设置不同步。这不是这里的情况,它们都是多线程 DLL。它们都是在 Release x64 中构建的。

这些项目设置有什么问题吗?我可以分享更多相关设置吗?

4

1 回答 1

0

我建议在任何地方都使用相同的设置,而不是混合使用(静态库和 dll 项目)。如果我没记错的话,我遇到了同样的问题。

于 2013-04-22T17:09:56.193 回答