我正在查看' nm'的输出。 Linux中的共享库的命令。我看到了这个
U stderr@@GLIBC_2.0
这是否意味着stderr与glibc2.0硬连接?我问这个问题的原因是我们有一组库(让我们说a1.so,a2.so,...)是针对我们导出的库的一个不同版本构建的(让&# 39; s表示ex.so.1,ex.so.2)。导出的库都导出了一个函数,比如说foo。当加载a * .so库时,它们会以某种方式神奇地修补它们构建的库中的相应函数。我看到不同库的nm输出,如下所示。
nm a1.so | grep foo
U foo@@ex.1
nm a2.so | grep foo
U foo@@ex.2
' @@'在这里玩?我找不到关于' @@'的任何文件。任何参考资料都会有所帮助。
答案 0 :(得分:3)
@
允许指定符号的版本。当存在符号的多个定义时,它们具有不同的版本。要指示默认版本,请使用@@
。如果未指定显式版本,则选择默认版本。
更多详细信息,请参阅binutils VERSION documentation(搜索" @@
")。