C++ 无法使用托管C+;中的new关键字创建非托管对象+;

C++ 无法使用托管C+;中的new关键字创建非托管对象+;,c++,boost,object,unmanaged,managed,C++,Boost,Object,Unmanaged,Managed,我创建了一个类,其中有一个boost::unordered_映射作为成员 链接.h #ifndef LINKAGE_H #define LINKAGE_H #include <boost/unordered_map.hpp> class Linkage { private: boost::unordered_map<int, int> m_IOMap; public: .... }; 和C++的托管端 我尝试创建obj的指针: privat

我创建了一个类,其中有一个boost::unordered_映射作为成员

链接.h

#ifndef LINKAGE_H
#define LINKAGE_H

#include <boost/unordered_map.hpp>

class Linkage
{
private:
    boost::unordered_map<int, int> m_IOMap;
public:
         ....
};

和C++的托管端 我尝试创建obj的指针:

private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    Linkage* m_pLink = new Linkage();
         .....
}
但是,这会产生错误:

Error   4   error LNK2005: "private: static unsigned int const boost::detail::type_with_alignment_imp<4>::found" (?found@?$type_with_alignment_imp@$03@detail@boost@@$$Q0IB) already defined in Proj_Test.obj   Linkage.obj
.....
Error   7   fatal error LNK1169: one or more multiply defined symbols found
Error 4 Error LNK2005:“private:static unsigned int const boost::detail::type_with_alignment_imp::found”(?found@?$type_with_alignment_imp.)@$03@detail@boost@$$Q0IB)已在Proj_Test.obj Linkage.obj中定义
.....
错误7致命错误LNK1169:找到一个或多个乘法定义符号
谁能给我解释一下吗?
谢谢。

当我在构造函数中显式地实例化它时,这最终会起作用:

#include "stdafx.h"

Linkage::Linkage()
{
    template boost::unordered_map<int, int>;
}
#包括“stdafx.h”
Linkage::Linkage()
{
模板boost::无序的_图;
}
#include "stdafx.h"

Linkage::Linkage()
{
    template boost::unordered_map<int, int>;
}