尽管匹配运行时库(/ MD),LNK2005错误

时间:2013-03-11 03:05:13

标签: visual-studio-2010 c++-cli clr msvcrt lnk2005

我试图在VS2010下的包含C#和C ++项目的CLI / C ++解决方案中使用OFELI库。简而言之,UI是用WPF编写的,计算是在支持CLR的C ++中完成的。

我下载了OFELI源代码,将解决方案转换为VS2010格式,并且能够成功构建静态库。但是,在链接到lib(ofeli-debug.lib)时会产生大量的LNK2005错误;

error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Getgloballocale(void)" (?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ) already defined in msvcprtd.lib(MSVCP100D.dll)

我注意确保lib是使用/ MDd设置构建的,就像项目一样。如果我将项目设置为忽略msvcprtd.lib,我最终会遇到大量LNK2019错误,正如我所料。

通过实验,我发现我可以成功链接并使用来自非CLR C ++测试项目的ofeli lib,但不能从启用CLR的项目中链接和使用(即使在启用了CLR支持的情况下编译了ofeli)。

我的CLR项目中出现许多LNK2005错误的简单代码片段如下所示。

#include "stdafx.h"
#include <OFELI.h>

using namespace OFELI;

int _tmain(int argc, _TCHAR* argv[])
{
    Mesh(10, 1); // Instance an object from the OFELI namespace
    return 0;
}

我错过了什么?

0 个答案:

没有答案