小编Luk*_*ke 的帖子

C ++与静态lib中的std :: string相关的未定义符号

我通过将一堆代码与C ++上的Linux上的静态库(.a)链接来构建共享库。我有一个在静态库中定义的方法。当我使用nm -C打印该静态库中的符号时,它显示为:

 Alembic::AbcCoreFactory::v9::IFactory::getArchive(std::string const&, Alembic::AbcCoreFactory::v9::IFactory::CoreType&)
Run Code Online (Sandbox Code Playgroud)

该符号未在输出.so文件(我正在构建的库)中定义,但是当我使用nm -uC列出未定义的符号时,它将输出:

Alembic::AbcCoreFactory::v9::IFactory::getArchive(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Alembic::AbcCoreFactory::v9::IFactory::CoreType&)
Run Code Online (Sandbox Code Playgroud)

区别在于,第一个使用std :: string const&,第二个使用std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const&

我试图了解为什么找不到符号。两者本质上是相同的,所以不应该匹配吗?

就上下文而言,我正在尝试为Linux虚幻编辑器4附带一个Alembic Importer。我尝试链接的库是Alembic库。

c++ linux symbols static-linking alembic

3
推荐指数
1
解决办法
955
查看次数

标签 统计

alembic ×1

c++ ×1

linux ×1

static-linking ×1

symbols ×1