linux库
teanee
Talk is cheap, show me the money.
展开
-
dlopen.dlsym.dlclose的应用
1.概念 dlopen()指定模式打开指定的动态链接库文件,并返回一个句柄给dlsym()的调用进程,使用dlclose()来卸载打开的库。 通俗的讲就是读取库内函数来使用库里的函数。 2.流程 打开库:void* dlopen(const char* libfile,int flag); 取函数:void* dlsym(void* handler, const char* symbol); 运行函数:func 关闭库:int dlclose(void* handler); 3.实例 ru原创 2020-06-12 11:29:15 · 240 阅读 · 0 评论 -
ldd查询可执行文件和库对其他库的依赖
1.使用静态库编译出的执行文件与静态库的依赖 [teanee@localhost sdlib]$ ldd test linux-vdso.so.1 (0x00007ffdd0197000) libc.so.6 => /lib64/libc.so.6 (0x00007f4aa94fa000) /lib64/ld-linux-x86-64.so.2 (0x000055630e42b000) [teanee@localhost sdlib]$ ldd libsd.a l...原创 2020-06-12 11:28:45 · 1192 阅读 · 0 评论 -
了解linux静态库&动态库
1,编写库相关文件 sd.c: int sumab(int a, int b){ return a+b; } sd.h int sumab(int, int); Makefile sda: gcc -c sd.c ar rs libsd.a sd.o gcc test.c libsd.a -o test rm sd.o sdd: gcc -c -fpic sd.c gcc -shared sd.o -o lib...原创 2020-06-12 11:24:26 · 191 阅读 · 0 评论 -
linux动态链接库使用过程中库的链接过程
加上-fPIC参数后,编译后的文件和没有加这个参数的文件,有什么区别呢? 没有加这个参数的编译后的共享库,也可以使用,它和加了参数后的使用起来又有什么区别呢? position independent(位置无关) relocate(可重定位) 位置无关代码主要是在访问全局变量和全局函数的时候采用了位置无关的重定位方法,即依赖GOT和PLT来重定位。 普通的重定位方法需要修改代码段转载 2012-04-09 16:03:21 · 942 阅读 · 0 评论