0

C++ でのテンプレートとライブラリの簡単なテストとして、信じられないほど単純なコンテナー (構造体にすぎません) を作成しました。任意のタイプのデータを保持し、その最も高い値のメンバーと、データが最後にアクセスされてから変更されたかどうかを追跡し、最新の msvc コンパイラによって生成された小さな .dll に含まれています。私がやりたいのは、このライブラリを Qt Creator の別のプロジェクトにリンクすることだけです。このプロジェクトは、コンパイラとして msvc を使用するように構成しました (Qt を使用して .ui ファイルを効率的に操作する必要があります)。呼び出されたオブジェクトの各関数の未解決の外部シンボルを取得します。たとえば、次のようになります。

LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall collectionContainer<int>::collectionContainer<int>(int *,short,long)" (__imp_??0?$collectionContainer@H@@QAE@PAHFJ@Z) referenced in function _main

ライブラリをエクスポートするときに表示されるはずの正確なシンボルであるという印象を受けていたので、ここで何をすべきかわかりません。

すべての関数には、Visual Studio が関数を条件付きでインポート/エクスポートする通常の方法で定義された CONTAINER_API があります。何かを誤解しただけだと確信していますが、アイデアが不足しています。

4

1 に答える 1

2

このエラーは DLL とは何の関係もなく、テンプレートの実装をヘッダー ファイルに入れていないという単なるケースなのだろうかと思います。こちらをご覧ください

于 2012-11-02T22:34:02.243 に答える