Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何查明共享库是从(zlib)链接/请求的?_C++_Cmake_Linker_Libraries - Fatal编程技术网

C++ 如何查明共享库是从(zlib)链接/请求的?

C++ 如何查明共享库是从(zlib)链接/请求的?,c++,cmake,linker,libraries,C++,Cmake,Linker,Libraries,我正试图清理一个cmake项目以删除依赖项,但我一直坚持删除zlib。项目将创建两个共享库a.so和b.so,其中b.so在构建时链接a.so。当调用“ldd liba.so”libz时,我得到的是: linux-vdso.so.1 (0x00007ffff6e49000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f481aac0000) libm.so.6 => /lib/x86_64-l

我正试图清理一个cmake项目以删除依赖项,但我一直坚持删除zlib。项目将创建两个共享库a.so和b.so,其中b.so在构建时链接a.so。当调用“ldd liba.so”libz时,我得到的是:

linux-vdso.so.1 (0x00007ffff6e49000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f481aac0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f481a720000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f481a500000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f481a100000)
/lib64/ld-linux-x86-64.so.2 (0x00007f481b600000)
但在将“libb”与以下内容链接之后:

我现在自动将libz链接到:

ldd libb.so
linux-vdso.so.1 (0x00007fffe694a000)
liba.so => liba.so (0x00007fb46472f000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb4640d0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb463d30000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb463b10000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb463710000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb4634e0000)   <<<<<<<<<<<
/lib64/ld-linux-x86-64.so.2 (0x00007fb465000000)
ldd libb.so
linux vdso.so.1(0x00007fffe694a000)
liba.so=>liba.so(0x00007fb46472f000)
libstdc++.so.6=>/usr/lib/x86_64-linux-gnu/libstdc++.so.6(0x00007fb4640d0000)
libm.so.6=>/lib/x86_64-linux-gnu/libm.so.6(0x00007fb463d30000)
libgcc_.so.1=>/lib/x86_64-linux-gnu/libgcc_.so.1(0x00007fb463b10000)
libc.so.6=>/lib/x86_64-linux-gnu/libc.so.6(0x00007fb463710000)

libz.so.1=>/lib/x86_64-linux-gnu/libz.so.1(0x00007fb4634e0000)回复删除的注释:在链接liba时没有。因此我在目标中得到liba+libz,而libz不是liba的依赖项,所以我不知道libz可能来自何处。抱歉,我在输出中错过了liba。您可能希望在详细模式下运行链接器。
ldd libb.so
linux-vdso.so.1 (0x00007fffe694a000)
liba.so => liba.so (0x00007fb46472f000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb4640d0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb463d30000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb463b10000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb463710000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb4634e0000)   <<<<<<<<<<<
/lib64/ld-linux-x86-64.so.2 (0x00007fb465000000)