0

Visual C ++では、myLib.hとmyLib.cppの2つのファイルを使用して静的ライブラリを作成しました。このライブラリを参照するファイル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 に答える