首先,lib库和wiringpi一样,最后编译时都要使用-lwiringPi来编译。
下载地址:这边博文链接
解压指令:
1.tar -zxvf curl-7.53.1.tar.gz

2.tar -jxvf curl-7.53.1.tar.bz2
1.查看文档。
先详细的读README文档看看里面有没有重要说明,读完之后没发现什么有用的东西,就去读打开docs文件夹,看里面的INSTALL文档。

2.分析里面的一些指令
在lic库里面,配置一些安装所需文件./configure --prefix=$PWD(工作目录)/--install(安装到指定的目录里面) --host(指定编译对象)如果编译的库要在树莓派上运行实列.**/configure --prefix=$PWD/_installPi --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc**(我就是始终报错configure: error:),所以在host后面添加上必须指定如上的arm-linux-gnueabihf-gcc 架构编译。

然后用make指令安装,此时还是看不见–intall文件夹。
最后一步manke install来拷贝安装文件到–insatll。

3.写代码及其编译
编译后,提示错误不认识头文件,需要用-I(大写的i) ./curl-7.71/–install/include(库所在路径如下)
改后,当然会出现新错误,因为系统还是不能运行到调用和头文件声明的函数,所以海要用-L ./curl-7.71.1/–install/lib(连接到静态或动态库中)

最后完整

总结:gcc - 参数

.

-I ( i 的大写)  :指定头文件路径(相对路径或觉得路径,建议相对路径)
作用:编译程序按照-I指定的路进去搜索头文件。-I/home/include/表示将-I/home/include/目录作为第一个寻找头文件的目录,寻找的顺序是: /home/include/ -->/usr/include-->/usr/local/include-i  :指定头文件名字 (一般不使用,而是直接放在**.c 文件中通过#include<***.h> 添加)-L :指定连接的动态库或者静态库路径(相对路径或觉得路径,建议相对路径)-l (L的小写):指定需要链接的库的名字(链接 libc.a :-lc 链接动态库:libc.so  : -lc   注意:-l后面直接添加库名省区“lib”和“.so”或“.a”  )
作用:编译程序到系统默认的搜索,如果找不到便到当前目录搜索,再搜索不到便到则到LD_LIBRARY_PATH等环境变量置顶的路进去查找,如果还找不到,那么编译程序提示找不到库。

运行程序也会出现错误:原因是运行程序时,系统只会默认在自己的lib库中去寻找调用函数,没用则在当前文件夹,去找可是我们的lib库在,–insatall中,这里就要去动用环境变量,如下:

这里需要用到expoart 环境变量来进行操作
其中lib就是你的libxxxx.so 所依赖的第三方库。如果对方机器上没有对应共享库的话,此时就需要 使用 “export LD_LIBRARY_PATH=lib库的路劲” 进行设置,当然这样只能在当前有用再开个窗口或者开机都会失效。
想要知道如何永久有效点这里

涉及的链接:https://blog.csdn.net/abcdu1/article/details/86083295
关于静态库和动态库的制作:库的制作

lic库的学习与使用流程(一般的库的使用流程)编译运行含有外包库程序的操作export和-L -I相关推荐

  1. ESP32编译运行ADF音频库

    明确ADF对应的IDF版本 ADF v2.1.v2.0 官网上说的支持v3.3.v4.0.v4.1,但是推荐v3.3,经过实际运行测试发现,v4.0等可以,但是支持不全面,有些Demo完全不支持,所以 ...

  2. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )

    文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...

  3. Ncurses学习经历(二) 编译包含ncurses库函数的程序

    如果要调用ncurses 库中的函数,你必须在代码中加载ncurses.h 文件,就是要在C 或C++ 程序开头添加"#include <ncurses.h>",然后在 ...

  4. [pytorch] PyTorch Metric Learning库代码学习二 Inference

    PyTorch Metric Learning库代码学习二 Inference Install the packages Import the packages Create helper funct ...

  5. 【STM32】STM32标准库与HAL库对照学习教程特别篇--系统时钟RCC详讲

    [STM32]STM32标准库与HAL库对照学习教程特别篇--系统时钟RCC详讲 一.前言 二.时钟是什么 三.时钟树 1.时钟树图 2.时钟树讲解 左边部分 中间部分 右边部分 特殊部分 四.初始化 ...

  6. DC学习笔记正式篇之零——综述与基本流程介绍

    前面介绍了STA部分,综合库的内容结束了基础部分,接下来是DC的使用篇.该部分首先会介绍DC的流程,然后对时序部分进行介绍,接下来是环境属性与较为复杂的时序约束的介绍.期间会有与之对应的dc_labs ...

  7. python内置库之学习configparser库(一)

    python内置库之学习configparser库(一) 1.引言 ini文件简介 [节] 键=值 注:节不能重复出现 2.自己封装了一个增删改查的类,可以参考一下 import configpars ...

  8. go标准库的学习-crypto/sha1

    参考:https://studygolang.com/pkgdoc 导入方式: import "crypto/sha1" sha1包实现了SHA1哈希算法,参见RFC 3174. ...

  9. linux添加自己的库,Linux学习笔记——例叙makefile 增加自定义共享库

    Linux学习笔记--例说makefile 增加自定义共享库 0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己 ...

  10. 日志库EasyLogging++学习系列(10)—— 日志文件滚动

    在很多应用场合,我们是需要实现日志文件滚动的,特别是在一些长期运行的服务器程序中,如果把所有的日志都记录在一个文件之中,势必会造成日志文件越来越大.当日志内容很多的时候,万一哪天突然需要查询某个日志信 ...

最新文章

  1. DWZ基于ajax重复请求的修复
  2. linux 查看san链路状态,Linux下查看网络状态的方法
  3. 【转】常用数据结构及复杂度
  4. python画图哆啦a梦-【Python】绘制哆啦A梦
  5. 【机器听觉】初探语音识别技术
  6. JVM学习(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结
  7. zTree使用技巧与详解
  8. git 为什么不能断点_跟我一起学docker(九)--持续系统集成了解下git
  9. Algorithm学习笔记 --- 迷宫问题
  10. linux exit 流程,Shell exit流程控制语句及用法
  11. _GNUC__宏函数
  12. insert执行成功 没有数据_Python—接口测试数据库封装实现原理
  13. ASP.NET MVC3 Model验证总结
  14. java用io流存信息_Java io流的学习
  15. MATLAB实现三边定位
  16. 【Leetcode Medium】1318. Minimum Flips to Make a OR b Equal to c
  17. hp服务器改系统启动项,hp笔记本如何进入bios修改启动项
  18. 嗨!亲爱的朋友们,欢迎您光临我的…
  19. webworker应用场景_多线程编程开发应用场景
  20. 【2018慢性病与信息大会】周脉耕:信息化助力基层慢病管理

热门文章

  1. 防火墙工作在哪个层_数据库安全关键技术之数据库防火墙技术
  2. ORACLE莫明其妙出错!
  3. dva 的一些特殊的写法
  4. seaborn的多样化图表及图表样式设置
  5. Photoshop设计精讲精练笔记 (三)
  6. 【快代理API】获取隧道代理IP
  7. IP地址管理(IPAM)解决方案有哪些?
  8. python dask_使用Python并行框架Dask处理和分析大规模时空数据
  9. 常微分方程和偏微分方程
  10. java三维动画_基于Java3D的交互式三维动画的研究