1. ldd 可查看程序需要哪些动态库
nm 可查看程序,库里有哪些函数
file 可查看文件的类型
objdump -D 反汇编.o/.a/.so/elf可执行文件
2. 制作静态库 (test1.c test2.c)
gcc test1.c -c -o test1.o
gcc test2.c -c -o test2.o
ar -cr libmy.a test1.o test2.o
使用:
gcc test.c ./libmy.a -I 头文件的所在路径
或者gcc test.c -L 库所在路径 -lmy -I 头文件的所在路径
3. 制作动态库(test1.c test2.c)
gcc test1.c test2.c -shared -fPIC -o libmylib.so
使用:
gcc test.c ./libmylib.so
或者gcc test.c -L 库所在路径 -lmylib
库发布:
把库复制到/lib/ 或者 /usr/lib
或者: export LD_LIBRARY_PATH=库所在路径
vim /etc/ld.so.conf
增加库所在的绝对路径
ldconfig
4. 手动加载动态库 gcc test.c -ldl
handle = dlopen(库路徑文件名, RTLD_LAZY);
dlsym(handle, "函数名"); //返回函数的地址
dlclose(handle);
gcc -rdynamic test.c -o test -ldl
相关文章
- 10-18gcc生成静态库.a和动态库.so的使用及opencv的安装与使用
- 10-18[.Net]使用Soa库+Abp搭建微服务项目框架(一):Abp与DDD相关知识回顾
- 10-18用gcc生成.a静态库与.so动态库
- 10-18cmake构建和链接静态库与动态库
- 10-18[.Net]使用Soa库+Abp搭建微服务项目框架(一):Abp与DDD相关知识回顾
- 10-18【GA源码分析之知识补充一】静态链接库与动态链接库
- 10-18静态库与动态库相关知识笔记
- 10-18静态库与动态库的制作与使用
- 10-18linux常用命令及一些静态动态库相关知识
- 10-18[转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)