如何识别所用库的版本

问题描述 投票:0回答:1

我有几个应用程序和一个库。该库可以静态或动态链接。我可以完全控制应用程序和库。由于可以在每个应用程序中编译和链接该库,因此我需要检查每个二进制文件的版本。有没有一种简单的方法可以在linux中使用命令行验证版本?我需要在库中定义特定的全局变量吗?我需要确保该变量没有被剥离并在每个二进制文件中定义。

c++ linux shared-libraries versioning
1个回答
0
投票

要检查二进制文件使用的共享库,您可以在 Linux 中使用 ldd 工具

DESCRIPTION
    ldd  prints  the  shared objects (shared libraries) required by each
    program or shared object specified on the command line.  
    An example of its use and output is the following:

       $ ldd /bin/ls
           linux-vdso.so.1 (0x00007ffcc3563000)
           libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)
           libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)
           libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)
           libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)
           libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)
           /lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000)
           libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)
           libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)

使用 man ldd 获取更多信息

© www.soinside.com 2019 - 2024. All rights reserved.