【问题标题】:std namespace vs. _STL namespace link problemsstd 命名空间与 _STL 命名空间链接问题
【发布时间】:2010-12-25 21:43:14
【问题描述】:

我正在尝试将我写的东西链接到现有的共享库。 我在 RedHat 3 上使用 gcc 3.2.3。当我进入链接阶段时,我收到一条错误消息:

object_files_linux/hvm_example.o(.text+0x233):~/hvm_example.cpp:254: 未定义对`xoc::hvmapi::id(std::basic_string, std::allocator > const&)'的引用

我已经在目标文件上运行了 nm 命令,它为有问题的函数显示了这一点:

U xoc::hvmapi::id(std::basic_string, std::allocator > const&)

我在共享库上运行 nm,它为有问题的函数显示了这一点:

T xoc::hvmapi::id(__STL::basic_string, _STL::allocator > const&)

我的问题是:链接失败是因为我的函数使用 std 命名空间而共享库使用 _STL 命名空间吗?

有解决办法吗?

我无权访问共享库源代码的源代码,但我确实有使用 std 命名空间作为参数的头文件。

谢谢, 迈克

【问题讨论】:

    标签: gcc linker shared-libraries


    【解决方案1】:

    您使用的共享库很可能是使用STLport 构建的。阅读该共享库的文档——它应该清楚地说明您还必须使用STLport 编译您的代码,以及您应该使用的STLport特定 版本。

    请注意,g++ 的不同版本也不是链接兼容的,特别是在版本 3.2.x3.3.x3.4.x 周围。您必须使用与用于构建您的第 3 方共享库的相同版本的 g++ 进行编译。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-24
      • 2011-02-05
      • 1970-01-01
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 2013-03-26
      相关资源
      最近更新 更多