代码之家  ›  专栏  ›  技术社区  ›  Peter Shinners

无法链接到共享库

  •  1
  • Peter Shinners  · 技术社区  · 16 年前

    我正在用g++3.3.4构建一个共享库。我无法链接到图书馆,因为我正在阅读

    ./BcdFile.RHEL70.so: undefined symbol: _ZNSt8_Rb_treeIjjSt9_IdentityIjESt4lessIjESaIjEE13insert_uniqueERKj
    

    c++filt将其描述为

    std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>, std::allocator<unsigned int> >::insert_unique(unsigned int const&)
    

    我原以为这可能是因为使用了hash\u映射,但我把这些都去掉了,转而使用常规的std::map。我用g++做链接,包括 -lstdc++ .

    有人知道哪个类会实例化这个模板吗?或者更好,我需要链接到哪个库?

    编辑: 在进一步检查之后,似乎是在编译时添加了-frepo标志导致了这种情况,不幸的是,该标志正在解决gcc3.3错误。

    3 回复  |  直到 12 年前
        1
  •  1
  •   Branan    16 年前

    std::_Rb_Tree 可能是一棵红黑相间的树,很可能是因为 map . 它应该是 libstdc++ 图书馆++

    编辑:只是澄清一下,红黑树是 地图 hash_map 是在使用密钥之前对其进行哈希运算,而不是使用原始值。

        2
  •  0
  •   Dima    16 年前

    #include < map > 
    在使用map的源文件中。
        3
  •  0
  •   zeb zeb    16 年前