0

在 Visual c++ 中,我创建了一个包含两个文件 myLib.h 和 myLib.cpp 的静态库。我还有一个控制台应用程序项目,其中包含引用此库的文件 testSequence.cpp。在 myLib.h 中,我定义了一个template<class prec> class sequence具有函数声明的类,prec *getPrimes(int numToGet)然后在 myLib.cpp 中定义该函数。但是,当我构建 testSequence 时,有一个链接错误,它说error LNK2019: unresolved external symbol "public: int * __thiscall mathLib::sequence<int>::getPrimes(int)" (?getPrimes@?$sequence@H@mathLib@@QAEPAHH@Z) referenced in function "char * __cdecl codeString(char *,char *,bool)" (?codeString@@YAPADPAD0_N@Z) 所以,是的,帮助会很好。

4

1 回答 1

3

阅读内容以了解错误的解释。

基本上,你想做的事情是做不到的。当编译器尝试为给定的模板类型参数实例化类模板时,它必须能够看到类模板的实现。您需要将所有成员函数的实现移动到头文件中。

于 2012-11-25T03:24:06.813 回答