本文共 924 字,大约阅读时间需要 3 分钟。
一、共享库的编译1.共享库源码
lib.hint function(void);lib.c
#include "lib.h"#include2.编译int function(void){ printf("TK--------->>>>this is sharelib function\n");}
gcc -shared -fPIC -o libfunc.so lib.c生成libfunc.so
二、共享库的静态装载
1.测试用例
main.c
#include#include "lib.h"int main(){ int a = function();}
2.编译
gcc -o main main.c -L. -lfunc
3.添加环境变量
vi /home/tankai/.bashrc
export LD_LIBRARY_PATH+=:/home/lianxi/share/static
即时生效:
source /home/tankai/.bashrc
三、共享库的动态装载
1.测试用例
main.c
#include#include #define PATH "../static/libfunc.so"void *handle = NULL;int (*test) (void);int main(){ handle = dlopen(PATH, RTLD_NOW|RTLD_GLOBAL); if(handle == NULL){ printf("dlopen:%s\n",dlerror); } dlerror(); test = (int(*)(int))dlsym(handle,"function"); if(test == NULL){ printf("dlsym:%s\n",dlerror()); dlclose(handle); } int a = test(); dlclose(handle);}
2.编译
gcc -o main main.c -L. -ldl
转载地址:http://ihgai.baihongyu.com/