unix – 库依赖性工具
发布时间:2020-12-16 01:30:48 所属栏目:安全 来源:网络整理
导读:我正在Unix平台上查找工具/命令,以检测.so和.o文件的库依赖关系. 我已经使用了ldd / nm / truss,但是我不知道检测库依赖关系的正确方法. 这取决于“检测库依赖性”究竟是什么意思. ldd 命令适用于共享库,而不仅仅是可执行文件.它将显示构建库时声明的共享库
我正在Unix平台上查找工具/命令,以检测.so和.o文件的库依赖关系.
我已经使用了ldd / nm / truss,但是我不知道检测库依赖关系的正确方法.
这取决于“检测库依赖性”究竟是什么意思.
$ldd /usr/lib/libgtk-3.so linux-vdso.so.1 (0x00007ffff8fff000) libgdk-3.so.0 => /usr/lib/libgdk-3.so.0 (0x00007f43fcf47000) libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007f43fcd43000) libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00007f43fcb36000) libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f43fc7fc000) ... 库可以有未定义的符号,这些符号是通过与未声明为依赖关系的其他库链接而获得的.您可以使用 $objdump -T /usr/lib/libgtk-3.so | head /usr/lib/libgtk-3.so: file format elf64-x86-64 DYNAMIC SYMBOL TABLE: 0000000000066e38 l d .init 0000000000000000 .init 0000000000000000 DF *UND* 0000000000000000 g_param_spec_object 0000000000000000 DF *UND* 0000000000000000 g_utf8_validate 0000000000000000 DF *UND* 0000000000000000 g_date_get_month 0000000000000000 DF *UND* 0000000000000000 g_bookmark_file_get_visited 0000000000000000 DF *UND* 0000000000000000 g_value_get_float 从这些符号名称可以推断未声明的库依赖性. 使用 $pkg-config --libs gtk+-3.0 -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |