将对unique_ptr的引用传递给构造函数

简要的问题:类的未定义引用链接器错误,该类在其构造函数中接受对unique_ptr的引用。

我的实际来源稍微复杂一点,而且是专有的,因此我不能在这里复制它,但我会尽力描述正在发生的事情。

我有一个类Burgermeister,它是通过对Judge对象的unique_ptr的引用构造的:

template <class chunkName>
Burgermeister<chunkName>::Burgermeister(unique_ptr<Judge> & judge);

一旦法官进入了Burgermeister,就不应将其弄乱(这就是为什么我将其设置为unique_ptr)。由于Judge是纯虚拟的,因此我将其抽象到TestJudge中进行测试:

class TestJudge : public Judge
{
  // a bunch of MOCK_METHODS overriding the parent class
};

但是,当我尝试创建一个Burgermeister对象(用于测试)时:

TEST_F(BurgermeisterTest, TheTestName)
{
    unique_ptr<Judge> theJudge;
    theJudge = make_unique<TestJudge>();
    auto BM = new Burgermeister<uint8_t>(theJudge);
}

该代码可以编译,但不会链接。引用的行在上面的BM变量的初始化中。我的错误是:

 undefined reference to `Burgermeister<unsigned char>::Burgermeister(std::unique_ptr<Judge, std::default_delete<Judge> >&)

So my question is, obviously, why doesn't this link. As far as I can tell, it's getting compiled in because I see this : Building CXX object core/CMakeFiles/MyProj_core.dir/src/Burgermeister.cpp.obj

谢谢!