我刚刚建立了一个共享库,但是当我使用 nm 命令查看依赖项时,输出如下
$ nm -a libgio-2.0.so.0.2701.0 | grep ZLIB
U deflateSetHeader@@ZLIB_1.2.2
U inflateGetHeader@@ZLIB_1.2.2
我不知道 的意思@@ZLIB_1.2.2
,实际上构建 libgio 的命令是
gcc -o libgio-2.0.so.0.2701.0 libfoo.so libbar.so libz.so.1.2.8
wherelibz.so.1.2.8
是我自己从源码构建的,放到 libgio-2.0.so.0.2701.0 的同一个目录下。和系统的libz(/usr/lib/libz.so)不是同一个版本
所以,我的问题是为什么nm
输出@@zlib
is 1.2.2
, not 1.2.8
?@@ZLIB_1.2.2
nm输出的含义是什么?
谢谢