静态链接后,boost :: system :: generic_category未定义

时间:2018-03-14 11:32:51

标签: c++ generics categories boost-system

我正在构建一个共享库,它与boost静态链接如下:

Arr=["abcd","1223","10829380","pqrs"]

问题是当在Ubuntu 16.04上打开这个库时,应该静态链接的符号是未定义的(请参阅以下命令输出:U)whist符号可以在libboost_system.so的文本区域中找到,如在最后一个命令输出。

例如:

nm ../liboms_rocketmq.so | grep _ZN5boost6system16generic_categoryEv                  U _ZN5boost6system16generic_categoryEv

nm /usr/local/lib/libboost_system.so | grep _ZN5boost6system16generic_categoryEv 00000000000013e0 T _ZN5boost6system16generic_categoryEv

任何想法为什么静态链接不能按预期工作?也就是说,将符号插入我们共享库的文本区域。

1 个答案:

答案 0 :(得分:0)

找出问题所在:我们需要将这些依赖的静态库放在最后,(在我们自己的代码之后)-pthreads之前,它应该是最后一个链接标记。