函数库: 具有特定功能的函数,系统或者第三方提供的编译好的二进制文件(如数学库、线程库等),分为静态库和动态库。

静态库:代码运行时候,将静态库代码复制进文件(用到哪些复制哪些),移植性好,但是代码体积大,升级库后需要重新编译源文件

生成静态库的步骤:
1)写库文件源码  即和之前头文件实现的.c文件类似(通常函数库也有头文件)
2)把源码编译为目标文件(*.o)         gcc -c xxxx.c xxx.c

3) 用ar命令把目标文件生成lib文件     ar crs libxxx.a xxx.o xxx.o ...
4)写调库函数的主程序。
5)把生成的lib文件和主程序一起编译链接

gcc -o 目标文件名 -L库路径 -lxxx
gcc -o 目标文件名 -static -L库路径 -lxxx

动态库:不复制代码到源代码,在程序运行时候同事加载库至内存,动态库可以被多个程序调用,动态库升级方便,但程序运行依赖库的加载
生成动态库的步骤:

1)写库文件源码,同上
2)把源码编译为目标文件(*.o)     gcc -c -fPIC xxxx.c xxx.c  (路径无关文件)

3)生成动态链接库文件                  gcc -shared -o libxxx.so xxx.o

4)写调库函数的主程序。
5)把生成的lib文件和主程序一起编译链接

gcc -o 目标文件名 -L库路径 -lxxx

6) 生成的库文件执行文件在执行的时候找不到库文件,
下面三种方法可选,
1 把动态库添加到系统的库文件目录中                         //需要权限,不建议使用
2 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:你的动态库路径   //推荐
3 添加/etc/ld.so.conf.d/*.conf文件,执行ldconfig刷新   //需要权限,不建议使用

转载于:https://www.cnblogs.com/huiji12321/p/11305779.html

step4 . day4 库函数和库函数的制作相关推荐

  1. java库函数-----Math库函数(每日一更)

    java库函数-----Math库函数(每日一更) 目录区 Java中的数学函数的应用:Math.sin,Math.exp. 源码区 /** Copyright (c) 1994, 2013, Ora ...

  2. c51语言 库函数,C51库函数-xuanying_china-ChinaUnix博客

    C51库函数 C-51软件包的库包含标准的应用程序,每个函数都在相应的头文件(.h)中有原型声明.如果使用库函数,必须在源程序中用预编译指令定义与该函数相关的头文件(包含了该函数的原型声明). 如果省 ...

  3. c语言 max库函数,C 库函数 – strftime() | 菜鸟教程

    C 库函数 - strftime() 描述 C 库函数 size_t strftime(char *str, size_t maxsize, const char *format, const str ...

  4. 15-自己写库函数构建库函数雏形

    寄存器编程---是如何过渡到固件库 1:头文件 #ifndef _STM32F4XX_H #define _STM32F4XX_H #include <stdint.h>#define G ...

  5. 2021-07-10 arduino 用于矩阵键盘的 开源库函数 keypad.h使用说明

    先实例化一个键盘: 确定行引脚 确定列引脚 const byte rows = 4; //4行 const byte cols = 4; //4列 char keys[rows][cols] = {{ ...

  6. C语言中positive用法,sprintf - C语言库函数

    C库类 的 sprintf - C语言库函数 C库函数int sprintf(char *str, const char *format, ...)发送str 指向一个字符串的格式化输出. 声明 以下 ...

  7. 【B站视频笔记】linux 进程间通信(ipc)信号(软中断信号)signal库函数、可靠信号和不可靠信号、信号集sigprocmask(信号掩码、信号递达Delivery、信号未决Pending)

    [视频教程]Linux信号详解(可靠信号.不可靠信号.阻塞信号.信号处理函数) [博文]Linux信号 文章目录 背景 课程笔记 一.如何让程序在后台运行 1.加"&"符号 ...

  8. 函数库属于计算机的,API库函数

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! API库函数是计算机语言库函数之一,支持以下操作:互连控制器操作.群集拓扑操作.内存段操作,包括段管理和数据访问等. 中文名 ...

  9. STM32(三)-------流水灯(标准库函数)

    流水灯(标准库函数) 知识点 GPIO 寄存器 基地址 外设 输入模式(上拉.下拉.浮空.模拟) 输出模式(推挽/开漏) 复用功能(推挽/开漏) 改变GPIO引脚状态 GPIO_Init()函数 函数 ...

最新文章

  1. [文摘20070307]英语表示“走”的20种形式
  2. 删除docker-register的镜像 none无效镜像讲解
  3. 在Visual Studio中使用命令行参数进行调试
  4. 斗鱼mac html5,New API · Issue #28 · spacemeowx2/DouyuHTML5Player · GitHub
  5. IO对象不可以复制或者赋值
  6. matlab中打不开保存好的模糊控制器,(完整版)matlab模糊控制工具箱的使用
  7. [css] 当使用opacity时会使得元素的子元素也透明,此时不想要子元素也跟着透明怎么办?
  8. 了解招聘中的这些潜台词,找工作少走弯路
  9. 95-20-060-启动器-Bootstrap
  10. WIN32:API串口通讯实例教程
  11. Apache 配置SSL网站
  12. 少和这种人在一起,不管你是谁!
  13. Android开发手册 (Android的手工教程MtAndroid开发手册)
  14. Boosting Adversarial Attacks with Momentum论文解读
  15. openconnection java_java – 是否真的有必要使用url.openConnection()?
  16. Java使用DES加密解密
  17. GNSS原理及技术(一)——GNSS现状与发展
  18. php webservice post,我用PHP写了个webservice,请问.net 如何通过POST方法使用wsdl里的方法...
  19. 给表格加上横向、纵向滚动条并对滚动条进行美化
  20. 全新型号 Dell EMC PowerEdge R750xa机架式服务器 全新型号2U

热门文章

  1. java ftp 读取 txt文件_java通过ftp方式读取文件,并解析入库
  2. 解决 iOS 12.4 Killed: 9 的问题
  3. 透视映射和射影映射的关系 Perspective and Projectivity
  4. 单向链表的C语言实现与基本操作
  5. 牛客练习赛34 E little w and Digital Root(数位dp)
  6. TCP滑动窗口和拥塞控制机制
  7. 巴菲特:人生赢家,都是稳中求生,稳中求胜
  8. 计算机网络——HTTP协议和Web
  9. 排队问题解题思路_1120各数的认识解决问题
  10. php 降低图像大小,在PHP中调整图像大小