为什么给ldd可执行文件名时不出现动态加载的库?这是真的吗?因为我找不到什么时候给的。这可能是因为动态加载和动态链接。
请帮我解决这个问题,如果您需要任何进一步的细节,请告诉我。
输出如下。
ldd example6
linux-vdso.so.1 => (0x00007ffe63369000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f56a2676000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f56a2372000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f56a1fa9000)
/lib64/ld-linux-x86-64.so.2 (0x00007f56a287a000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f56a1ca3000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f56a1a8d000)
Run Code Online (Sandbox Code Playgroud)
我只能看到 libdl.so...但我的可执行文件,example6 依赖于 libtriangle.so,它是为某些测试而创建的。
如果您在没有 dlopen 命令的情况下访问共享库,我可以在可执行文件中找到 .so 详细信息,因为我觉得它是静态加载和动态链接。
这里可执行,main 调用共享库,libtriangle.so。共享库,triangle.so 调用另一个共享库,man.so.. man.so 调用 pthread api
Makefile 出现在最后
man.so 是使用 livingbeing.hpp,man.cpp 获得的,man.cpp 使用 pthread apis.man.so 取决于 -lpthread
triangle.so 使函数调用 man.so。triangle.so 访问共享库,man.so 使用 dlopen,dlsym 命令。
Executable,main 依赖于triangle.so。主要访问triangle.so 使用dlopen,dlsym 函数。
ldconfig 也适用于 /usr/local/lib/MYDIR 中的 .so 文件
请找到以下文件。
#ifndef LIVINGBEING_HPP
#define …Run Code Online (Sandbox Code Playgroud)