【问题标题】:unresolved external symbol “std::basic_string”未解析的外部符号“std::basic_string”
【发布时间】:2012-05-17 13:26:56
【问题描述】:

我正在尝试通过 Visual C++ 编译器使用 Maven 编译一个项目,但我不断收到关于 std::basic_string 类的链接错误。我确保将 头文件包含到相应的 c++ 文件中。

我错过了什么还是我犯了一个愚蠢的错误???请让我知道我哪里出错了。

[ERROR] Parsor.obj : error LNK2001: unresolved external symbol

"__declspec(dllimport) public:
    int __thiscall std::basic_string<
        char,
        struct std::char_traits<char>,
        class std::allocator<char> >::compare(
            class std::basic_string<
                char,
                struct std::char_traits<char>,
                class std::allocator<char> > const &) const"

(__imp_?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHABV12@@Z)

【问题讨论】:

  • basic_string 是一个模板,所以它不应该作为一个符号出现。
  • 愚蠢的错误 - 使用 std::string ... 除非您希望实现自己的 basic_string 类型定义,否则永远不要接触 std::basic_string。 (我不建议这样做。)
  • 我不直接使用std::basic_string,我只使用std::string

标签: c++ visual-c++ maven std linkage


【解决方案1】:

您的 VC++ 中的链接器设置似乎不正确。尝试一个简单的程序来测试 std::strig 的功能

可能复制到:

unresolved external symbol..no idea

Solving “locally defined symbol” and “unresolved external symbol” that originates from the .lib files

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 2011-02-09
    • 2015-06-27
    • 2021-12-04
    相关资源
    最近更新 更多