在 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)
所以,是的,帮助会很好。
最佳答案
阅读this错误的解释。
基本上,您尝试做的事情无法完成。当编译器尝试为给定的模板类型参数实例化类模板时,它必须能够看到类模板的实现。您需要将所有成员函数的实现移动到头文件中。
关于c++ - visual c 中的静态库链接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13547970/