Linux系统下动态库与静态库的制作步骤。
静态库
1.将源文件编译生成目标文件:
······gcc -c 文件名.c -o 名.o
2.创建静态库,用到的是ar命令,可以将多个.o 转换成.a:
······ar crs lib名.a 名.o
静态库制作完成,下面是测试:
3.测试使用的静态库:
······gcc main.c -L./路径 -l名 -------这个名字不包含lib和.a
4.执行 ./a.out
例:

拿一个简单的例子,一个函数.c 一个主函数 一个头文件
然后把步骤带入:

静态库制作到测试完成。
动态库:
1.将源文件编译生成目标文件 -fPIC 创建与地址无关的编译程序
gcc -fPIC -c 名.c -o 名.o
2.创建动态库
gcc -shared -o lib库名.so 名.o
3.测试动态库使用
先把库拷贝到/usr/lib和/lib目录下,不然会报错,(或用大写的i指定路径)
然后 gcc main.c -L./ -l库名 -------也是去掉lib和.so
4.执行时需要加上库名
./a.out libmyhello.so


中间出了点小问题,所以分开截了。
动态库也完事了,运行的时候一定要带上动态库。

动态库与静态库的区别:
载入时刻:在程序编译时被连接到目标代码中,动态库在程序运行时被载入代码中
运行速度:静态库运行时不需要加载库,运行速度快
代码体积和移植性:因为静态库中的代码复制到了程序中,所以体积较大,编译后就可以删掉静态库了,移植时只需要吧a.out 复制过去就可;动态库的话因为每次运行都需要动态库的存在,所以移植性较差。
库升级后: 静态库升级后,程序需要重新编译链接,动态库不用

库的制作(简单直接)相关推荐

  1. linux平台 一个简单的helloworld静态库的制作与使用

    业务开发使用Go语言,有的时候会引用c的代码,通常以静态库的形式调用,介绍一下linux平台静态库的制作与使用方式: HelloWorld库代码: HelloWorld.c文件 /*** 简单静态库文 ...

  2. turtle库制作简单动画和总结

    turtle制作简单动画和总结 最后制作的效果图 制作的代码,写的比较乱,后面还有皮卡丘动画,有需要可以私我. def tree(n,l):pd()#下笔#阴影效果t = cos(radians(he ...

  3. html根据字段制作曲线图,canvas制作简单的HTML图表,折线或者矩形统计(原创)

    插件描述:canvas制作简单的HTML图表,折线或者矩形统计 使用canvas制作简单的HTML图表,折线或者矩形统计. 使用canvas制作简单的HTML图表,折线或者矩形统计,简单而实用.图形由 ...

  4. php简单网页制作代码,用HTML和CSS以及JS制作简单的网页菜单界面的代码

    这篇文章主要介绍了使用HTML+CSS+JS制作简单的网页菜单界面,这个ABROAD项目所使用的JavaScript部分代码非常简单,需要的朋友可以参考下 写ABROAD项目用到了标签这个东东,其实标 ...

  5. 专属微信二维码python制作_如何利用Python制作简单的公众号二维码关注图

    创意配图:微信,微信公众号,微信大V 而且最近发现了一个新的图像处理方面的库-Wand,它是 ImageMagick 库的 Python 接口.于是,我就打算用这个库来实现简单的制作一个二维码关注图, ...

  6. 人脸识别开源库face_recognition的简单介绍

    人脸识别开源库face_recognition的简单介绍 原文出处: https://blog.xugaoxiang.com/ai/face-recognition-cnn.html 软硬件环境 ub ...

  7. 使用matlab建立个人简历,HTML 使用表格制作简单的个人简历

    复习一下HTML,用表格做一个简单的个人简历 .btbg{ text-align:center; } 个人简历 姓名 性别 出生日期 照片 民族 政治面貌 婚姻状况 现所在地 籍贯 学历 毕业学校 专 ...

  8. 如何用Python制作简单又好看的词云?来瞅瞅吧~

    今天教大家如何用Python制作简单的词云,文中有非常详细的介绍及代码示例,对于正在学习Python的小伙伴们也能看的懂,需要的小伙伴可以参考下. 一.准备 词云制作所必需的三个包: 安装:pip i ...

  9. Arduino 用声音传感器制作简单的“声纹锁”

    Arduino 用声音传感器制作简单的"声纹锁" 前言 之前就一直在想如何用Arduino制作一个门锁,简单廉价,又可以很方便的开门,最后想了一个办法,就是使用一个声音传感器,制作 ...

最新文章

  1. python log文件_Python logging基本使用
  2. HTML DOM appendChild() 方法
  3. NYOJ 1053 Alice and Bob (N)
  4. RequestDispatcher.forward() 与 HttpServletResponse.sendRedirect()的区别
  5. pr抖动插件_某宝价值135元的PS/AE/PR全套插件合集,一键安装,大神必备这一套就够了【第10期】...
  6. MyCat分布式数据库集群架构工作笔记0022---高可用_单表存储千万级_海量存储_分表扩展分片枚举
  7. maxdos网刻教程(傻瓜型)
  8. 北京冬奥会使用的集装箱最后如何处理
  9. ESP32基于arduino和风天气获取代码
  10. (一)Gluster 介绍及简单部署
  11. 使用学信网认证,免费获取JetBrains学习产品
  12. ThreeJS 骨架图显示、骨骼修改颜色
  13. 物联网应用平台开发——项目总结报告
  14. 前端做微信好友分享_一篇搞定微信分享和line分享
  15. ubuntu 下怎么查看内存条状况
  16. 记录:FC-SAN与IP-SAN比较
  17. ft232 android,微雪电子FT232(mini)USB转USART简介
  18. 七阶拉丁方阵_拉丁方阵【转】
  19. PHP网站怎么放谷歌广告,如何在wordpress中加入google adsense广告(百度联盟)
  20. Python之面相对象 - 双下方法

热门文章

  1. 谐波平衡 matlab,增量谐波平衡法程序
  2. 自然语言处理(一)句法分析, 乔姆斯基范式CYK+PCFG的短语结构
  3. 江南百景图凭什么火?
  4. iframe 标签(用于嵌套网页)及loading加载动画效果
  5. 步进电机基本原理及驱动方式详解
  6. 基于Autoware分析runtime manager人机交互界面模块作用
  7. 爱丁堡大学的PMR(PMR in the University of Edinburgh)【1】
  8. mac系统数据恢复软件|易我数据恢复Mac版下载
  9. 新目标大学英语综合教程2_课后答案
  10. 我的kindle导航