在linux中, ldd是list, dynamic, dependencies的缩写, 意思是, 列出动态库依赖关系。
hello.h 中的内容
#ifndef HELLO_H
#define HELLO_H
#include <stdio.h>
void HelloFunc();
#endif
hello.c中的内容
#include "hello.h"
void HelloFunc()
{
printf("Hello World\n");
}
cmake动态库编译hello.c生成libhello.so,将该库安装于/usr/lib/下,动态库帮本号1.2。
mian.c中调用hellFunc接口,内容如下:
#include <hello.h>
int main(int argc, char** argv)
{
HelloFunc();
return 0;
}
cmake 链接动态库libhello.so生成二进制可执行文件main,执行ldd *
如上ldd列出了文件夹下文件的依赖关系。可看出可执行文件main依赖于libhello.so这个动态库,该库位于、usr/lib下。
如果链接静态库的话;
说明,main确实链接到了静态库libhello.a。
在实际linux开发与调试中, 要经常查看动态库依赖关系, ldd用得还是比较多的, 特别是出现故障的时候。OK, ldd命令就简单介绍到这里了, 虽然简单, 但很实用, 故不可不知。