当前位置:  开发笔记 > 编程语言 > 正文

什么使g ++包括GLIBCXX_3.4.9?

如何解决《什么使g++包括GLIBCXX_3.4.9?》经验,为你挑选了1个好方法。

我使用g ++版本4.2.3在同一个GNU/Linux服务器上编译了2个不同的二进制文件.

第一个使用:

GLIBC_2.0
GLIBC_2.2
GLIBC_2.1
GLIBCXX_3.4
GLIBC_2.1.3

第二个使用:

GLIBC_2.0
GLIBC_2.2
GLIBC_2.1
GLIBCXX_3.4.9
GLIBCXX_3.4
GLIBC_2.1.3

为什么第二个二进制文件使用的GLIBCXX_3.4.9只能在libstdc ++.so.6.0.9上使用,而不能在libstdc ++中使用.so.6.0.8

g ++生成的新功能是什么,需要ABI中断并强制系统拥有GLIBCXX_3.4.9?

有没有办法禁用这个新功能,不需要GLIBCXX_3.4.9?



1> Employed Rus..:

要找出二进制实际依赖的列出的GLIBCXX_3.4.9符号中的哪一个,请执行以下操作:

readelf -s ./a.out | grep 'GLIBCXX_3\.4\.9' | c++filt

一旦知道要查找的符号,就可以追溯到需要它们的对象:

nm -A *.o | grep _ZN

最后,要将其与源代码联系起来,您可以执行以下操作:

objdump -dS foo.o

并查看哪些代码引用了3.4.9符号.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有