1

プロジェクトをコンパイルしようとしていますが、マップ オブジェクトを含めると、LNK2001 エラーが発生します。正しいヘッダー ファイルをインクルードしましたが、どのライブラリをインクルードする必要があるかわかりません。

私は Visual Studio 2008 を使用しています。「すべての既定のライブラリを無視する」を「いいえ」に設定すると機能しますが、プロパティをそのように設定することは、最終的な結果に対して許可されたオプションではありません。ある種のすべて STL ライブラリがあると思っていましたが、コードにベクトルとデキューがあり、正常に動作します。エラーが表示されるのは、マップ オブジェクトを追加したときだけです。

4

3 に答える 3

1

正しいインクルードは次のようになります。

#include <map>

そして、マップの正しい初期化は次のようになります。

std::map<int, char> mymap;
于 2012-08-30T16:57:48.447 に答える
1

そのため、友人が同様の問題を抱えており、必要なライブラリは msvcprt.lib でした。

于 2012-08-30T17:14:34.413 に答える
0

これはおそらく STL 実装の最適化です。どのテンプレート パラメータにも依存しないコードは基本クラスに分割されるため、すべてのインスタンスで 1 つのコピーのみが使用され、このコピーは C++ 標準ライブラリに保持されます。したがって、このライブラリへのリンクを避けることはできません。

于 2012-08-30T17:04:10.030 に答える