动态库和静态库
来源:互联网 发布:重庆房地产数据 编辑:程序博客网 时间:2024/06/06 08:53
当我们完成的代码需要向外展示内容,又不想别人看到自己的源代码的时候,我们可以通过动态库,在给出头文件过后,别人就可以使用这个代码的时候,无从获知自己的代码,从而保证自己的代码的所有权。
动态库:代码编译生成一个".so"的文件,当需要执行的时候,系统把这个".so"文件加载到内存中去,从而我们可以节省硬盘空间,库放在/lib,/usr/lib下,头文件放在/usr/include下。
静态库:静态库在linux下名为libxx.a,静态函数库编译成的文件比较大,因为整个函数库的所有数据都被整合进目标代码中,静态链接的程序不用动态库就可以直接执行,而动态链接的必须要动态库才能执行。
当我们编写完成代码过后,我们通过"gcc *.c -static"来静态编译,然后我们可以看到生成的可执行文件a.out的大小比我们不通过静态编译生成的文件的大小要大很多。
静态库的制作:
gcc -c *.c 当我们需要通过gcc 把.c的文件编译生成.o的文件,过后ar -rcs 把所有的.o文件打包生成一个libxx.a的文件。当别人需要用到自己的代码时,我们就可以给他这个静态库的文件,且他还不知道我们的源代码。
动态库的制作:
gcc -shared -fpic -o 我们把*.c的文件打包生成一个libxx.so的文件
阅读全文
0 0
- 动态库和静态
- 静态库和动态库
- 静态库和动态库
- 动态库和静态库
- 静态库和动态库
- 静态库和动态库
- 静态库和动态库
- 静态库和动态库
- 动态库和静态库
- 静态库和动态库
- 静态库和动态库
- 静态库和动态库
- 静态库和动态库
- 静态库和动态库
- 动态库和静态库
- 动态库和静态库
- 静态库和动态库
- 静态库和动态库
- dijkstra队列优化链式前向星(C++、Java)
- windows下用navicat远程链接虚拟机Linux下MySQL数据库
- 两边空格的编程风格
- 【bzoj2427】【软件安装】tarjan缩点+树形依赖背包
- Sql Server系列:视图
- 动态库和静态库
- 将mysql设置为django的数据库
- 自动化部署服务——AWS CodeDeploy 快速入门
- c++字符串批量替换
- 学习github的使用
- MongoChef(MongoDB可视化工具) v5.0.1免费版下载附使用教程
- vSphere ESXi主机配置iSCSI存储
- qt文档 Creating Project Files
- 文件管理