【问题标题】:What library contains map STL collection? [closed]什么库包含地图 STL 集合? [关闭]
【发布时间】:2012-08-30 16:36:37
【问题描述】:

我正在尝试编译一个项目,但是当我包含一个地图对象时,它给了我一个 LNK2001 错误。我已经包含了正确的头文件,但我不知道我应该包含什么库。

我使用的是 Visual Studio 2008,当我将“忽略所有默认库”设置为“否”时,它会起作用,但以这种方式设置属性并不是最终结果的允许选项。我以为会有某种全 STL 库,但我的代码中有向量和出队,它们工作正常。只有当我添加地图对象时才会出现错误。

【问题讨论】:

  • “以这种方式设置属性不是最终结果的允许选项”这似乎是您应该解决的问题。
  • 您能否向我们展示出现此问题的最小可编译代码示例,以及您遇到的确切错误?
  • 我同意,但这不是我能控制的。 :-/ TommiT 的代码就差不多了,我还没有对地图做任何事情,只是想声明它会造成麻烦。
  • 你能发布一些给你带来麻烦的代码吗?有关链接器错误的详细信息也会有所帮助。
  • 什么是 EXACT 错误消息。 std::map 应该只需要头文件,所以还有一些你没有告诉我们的错误。

标签: c++ stl shared-libraries lnk2001


【解决方案1】:

正确的包含应该是这样的:

#include <map>

地图的正确初始化应该是这样的:

std::map<int, char> mymap;

【讨论】:

  • 是的,我已经知道了。没用。
【解决方案2】:

所以,有朋友遇到了类似的问题,我需要的库是 msvcprt.lib 。

【讨论】:

    【解决方案3】:

    这可能是 STL 实现中的一种优化——不依赖于任何模板参数的代码被拆分为一个基类,因此在所有实例中只使用一个副本,并且这个副本保存在 C++ 中标准库,因此您将无法避免链接到该库。

    【讨论】:

      猜你喜欢
      • 2013-11-02
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多