我正在尝试将我写的内容链接到现有的共享库。 我在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名称空间作为参数的头文件。
谢谢, 麦克
答案 0 :(得分:0)
您使用的共享库可能是使用STLport构建的。阅读该共享库的文档 - 它应该清楚地说明您必须使用STLport
编译代码,以及您应该使用的{em>特定版本的STLport
请注意,g++
的不同版本也不兼容链接,尤其是版本3.2.x
,3.3.x
和3.4.x
。您必须使用与用于构建第三方共享库的版本g++
相同的进行编译。