静态库与动态库相关知识笔记
来源:互联网 发布:2018mpacc知乎 编辑:程序博客网 时间:2024/05/01 00:21
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
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
0 0
- 静态库与动态库相关知识笔记
- 动态链接库相关知识
- 动态规划相关知识笔记
- 动态与静态库
- Linux动态库相关知识整理
- Linux动态库相关知识整理
- Linux 动态库相关知识整理
- HeadFirstC笔记_8 静态库与动态库:热插拔代码
- C语言之静态库与动态库学习笔记
- 静态库和动态库相关概念
- 【GamingAnywhere源码分析之知识补充一】静态链接库与动态链接库
- 静态库与动态库
- 动态库与静态库
- 静态库与动态库
- 静态库与动态库
- 动态库与静态库
- 动态库与静态库
- 静态库与动态库
- 对Android 平台下SElinux的理解及遇到过的相关问题解决方法总结
- eclipse 安装tomcat插件,配置tomcat服务器
- MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
- opencv坐标系测试
- 微信公众号支付开发 --Java
- 静态库与动态库相关知识笔记
- MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总结
- jmap -histo pid 输出的[C [B [I [S methodKlass constantPoolKlass含义
- Qt之图形视图框架
- 一些无线路由器配置项的简略解释
- NYOJ:264国王的魔镜
- 我给媳妇解释设计模式:第一部分
- Gerrit代码审核服务器搭建全过程
- 浅谈VC中使用Qt库之一