step4 . day4 库函数和库函数的制作
函数库: 具有特定功能的函数,系统或者第三方提供的编译好的二进制文件(如数学库、线程库等),分为静态库和动态库。
静态库:代码运行时候,将静态库代码复制进文件(用到哪些复制哪些),移植性好,但是代码体积大,升级库后需要重新编译源文件
生成静态库的步骤:
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 库函数和库函数的制作相关推荐
- java库函数-----Math库函数(每日一更)
java库函数-----Math库函数(每日一更) 目录区 Java中的数学函数的应用:Math.sin,Math.exp. 源码区 /** Copyright (c) 1994, 2013, Ora ...
- c51语言 库函数,C51库函数-xuanying_china-ChinaUnix博客
C51库函数 C-51软件包的库包含标准的应用程序,每个函数都在相应的头文件(.h)中有原型声明.如果使用库函数,必须在源程序中用预编译指令定义与该函数相关的头文件(包含了该函数的原型声明). 如果省 ...
- c语言 max库函数,C 库函数 – strftime() | 菜鸟教程
C 库函数 - strftime() 描述 C 库函数 size_t strftime(char *str, size_t maxsize, const char *format, const str ...
- 15-自己写库函数构建库函数雏形
寄存器编程---是如何过渡到固件库 1:头文件 #ifndef _STM32F4XX_H #define _STM32F4XX_H #include <stdint.h>#define G ...
- 2021-07-10 arduino 用于矩阵键盘的 开源库函数 keypad.h使用说明
先实例化一个键盘: 确定行引脚 确定列引脚 const byte rows = 4; //4行 const byte cols = 4; //4列 char keys[rows][cols] = {{ ...
- C语言中positive用法,sprintf - C语言库函数
C库类 的 sprintf - C语言库函数 C库函数int sprintf(char *str, const char *format, ...)发送str 指向一个字符串的格式化输出. 声明 以下 ...
- 【B站视频笔记】linux 进程间通信(ipc)信号(软中断信号)signal库函数、可靠信号和不可靠信号、信号集sigprocmask(信号掩码、信号递达Delivery、信号未决Pending)
[视频教程]Linux信号详解(可靠信号.不可靠信号.阻塞信号.信号处理函数) [博文]Linux信号 文章目录 背景 课程笔记 一.如何让程序在后台运行 1.加"&"符号 ...
- 函数库属于计算机的,API库函数
本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! API库函数是计算机语言库函数之一,支持以下操作:互连控制器操作.群集拓扑操作.内存段操作,包括段管理和数据访问等. 中文名 ...
- STM32(三)-------流水灯(标准库函数)
流水灯(标准库函数) 知识点 GPIO 寄存器 基地址 外设 输入模式(上拉.下拉.浮空.模拟) 输出模式(推挽/开漏) 复用功能(推挽/开漏) 改变GPIO引脚状态 GPIO_Init()函数 函数 ...
最新文章
- [文摘20070307]英语表示“走”的20种形式
- 删除docker-register的镜像 none无效镜像讲解
- 在Visual Studio中使用命令行参数进行调试
- 斗鱼mac html5,New API · Issue #28 · spacemeowx2/DouyuHTML5Player · GitHub
- IO对象不可以复制或者赋值
- matlab中打不开保存好的模糊控制器,(完整版)matlab模糊控制工具箱的使用
- [css] 当使用opacity时会使得元素的子元素也透明,此时不想要子元素也跟着透明怎么办?
- 了解招聘中的这些潜台词,找工作少走弯路
- 95-20-060-启动器-Bootstrap
- WIN32:API串口通讯实例教程
- Apache 配置SSL网站
- 少和这种人在一起,不管你是谁!
- Android开发手册 (Android的手工教程MtAndroid开发手册)
- Boosting Adversarial Attacks with Momentum论文解读
- openconnection java_java – 是否真的有必要使用url.openConnection()?
- Java使用DES加密解密
- GNSS原理及技术(一)——GNSS现状与发展
- php webservice post,我用PHP写了个webservice,请问.net 如何通过POST方法使用wsdl里的方法...
- 给表格加上横向、纵向滚动条并对滚动条进行美化
- 全新型号 Dell EMC PowerEdge R750xa机架式服务器 全新型号2U
热门文章
- java ftp 读取 txt文件_java通过ftp方式读取文件,并解析入库
- 解决 iOS 12.4 Killed: 9 的问题
- 透视映射和射影映射的关系 Perspective and Projectivity
- 单向链表的C语言实现与基本操作
- 牛客练习赛34 E little w and Digital Root(数位dp)
- TCP滑动窗口和拥塞控制机制
- 巴菲特:人生赢家,都是稳中求生,稳中求胜
- 计算机网络——HTTP协议和Web
- 排队问题解题思路_1120各数的认识解决问题
- php 降低图像大小,在PHP中调整图像大小