7-LINUX--库文件的生成与使用

这篇具有很好参考价值的文章主要介绍了7-LINUX--库文件的生成与使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.什么是库文件

库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在:/lib 和 /usr/lib。
在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在
/usr/include 下或其子目录下。
库有两种,一种是静态库,其命令规则为 libxxx.a,一种是共享库,其命令规则为 libxxx.so,
如下图所示:
7-LINUX--库文件的生成与使用,Linux笔记,linux,运维,服务器

二.静态库的生成与使用

1.静态库的生成

以下是需要生成静态库的”.c”文件,其中“foo.h”中是函数的声明,“add.c”和“max.c”
是函数的定义:
7-LINUX--库文件的生成与使用,Linux笔记,linux,运维,服务器

具体步骤:

7-LINUX--库文件的生成与使用,Linux笔记,linux,运维,服务器

三.共享库的生成与使用

1.共享库的生成

以下是需要生成共享库的”.c”文件,其中“foo.h”中是函数的声明,“add.c”和“max.c” 是函数的定义:
7-LINUX--库文件的生成与使用,Linux笔记,linux,运维,服务器

具体步骤

7-LINUX--库文件的生成与使用,Linux笔记,linux,运维,服务器

四.环境变量

如果库不在标准位置下,也可以通过设置环境变量”LD_LIBRARY_PATH”来指定加
载库的路径。
7-LINUX--库文件的生成与使用,Linux笔记,linux,运维,服务器

五.静态库和共享库的区别

1.程序使用静态库,编译后,用到的库方法会复制到可执行程序中,再次运行,直接运行当前程序,不要连接静态库。
2.程序使用共享库,编译链接后,可执行程序只标记到用到的库方法,并不包含,再次运行,动态链接到要用的共享库。
因此,含有静态库的程序占有内存较大。

文章来源地址https://www.toymoban.com/news/detail-840588.html

到了这里,关于7-LINUX--库文件的生成与使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • makefile 编译动态链接库使用(.so库文件)

    动态链接库:不会把代码编译到二进制文件中,而是在运行时才去加载, 好处是程序可以和库文件分离,可以分别发版,然后库文件可以被多处共享 动态链接库 动态:动态加载 链接:二进制文件和库文件分离。 库 库文件 .so 新建一个文件TestSo 编译一下 main.cpp 写好之后我们

    2024年01月23日
    浏览(32)
  • ESP32工程中CMake使用及加入第三方SDK库文件

            本文中使用的是乐鑫官方推出的 ESP-IDF v5.1 对 ESP32S3 设备开发,并非是Arduino、Micro-python等第三方工具开发。在ESP-IDF框架中,乐鑫官方已经将 CMake 和 Ninja 编译构建工具 集成到了ESP-IDF中。         ESP-IDF 即乐鑫物联网开发框架,可为在 Windows、Linux 和 macOS 系统平台

    2024年02月20日
    浏览(32)
  • windows执行完LoadLibrary()后,可以删除源动态库文件,函数不会锁库文件

    windows执行完LoadLibrary()后,可以删除源动态库文件,函数不会锁库文件。 运行结果:

    2024年02月13日
    浏览(28)
  • ONNX:C++通过onnxruntime使用.onnx模型进行前向计算【下载的onnxruntime是编译好的库文件,可直接使用】

    微软联合Facebook等在2017年搞了个深度学习以及机器学习模型的格式标准–ONNX,旨在将所有模型格式统一为一致,更方便地实现模型部署。现在大多数的深度学习框架都支持ONNX模型转出并提供相应的导出接口。 ONNXRuntime(Open Neural Network Exchange)是微软推出的一款针对ONNX模型格式

    2024年02月15日
    浏览(36)
  • 【实用技巧】更改ArduinoIDE默认库文件位置,解放系统盘,将Arduino15中的库文件移动到其他磁盘

    本文主要介绍更改Arduino IDE (含2.0以上版本)默认库文件位置的方法。  原创文章,转载请注明出处: 【实用技巧】更改ArduinoIDE默认库文件位置,解放C盘,将Arduino15中的库文件移动到其他磁盘-CSDN博客 文章浏览阅读185次。本文主要介绍更改Arduino IDE (含2.0以上版本)默认库

    2024年02月03日
    浏览(49)
  • C标准库文件&常用函数

    编号 头文件 C标准版本 介绍 1 assert.h C89/C90 条件编译宏,将参数与零比较 2 ctype.h C89/C90 用来确定包含于字符数据中的类型的函数 3 errno.h C89/C90 报告错误条件的宏 4 float.h C89/C90 浮点数类型的极限 5 limits.h C89/C90 基本类型的大小 6 locale.h C89/C90 本地化工具 7 math.h C89/C90 常用数据函

    2024年02月12日
    浏览(35)
  • C++有哪些常用的库文件

    常用库文件: iostream:  输入输出流库,包含cin、cout、cerr等标准输入输出对象。 string : 字符串库,包含字符串类型std::string及相关操作函数。 vector : 动态数组库,包含vector类型及相关操作函数。 map:  字典库,包含map、multimap、set、multiset等关联容器类型及相关操作函数。 algorithm

    2024年02月02日
    浏览(35)
  • openssl缺少libssl.so.1.1库文件

    这是由于openssl库的位置不正确造成的,一般出现在openssl源码升级场景下。 源码编译完成后,需要对libssl.so.1.1做一个软连接,从openssl源码安装目录/usr/local/openssl/lib/下面将编译好的libssl.so.1.1进行软连接。

    2024年01月21日
    浏览(38)
  • 通过 CMake 制作库文件 静态库 和 动态库

    CMake Calc 项目 在这里有 add.c,div.c,mult.c,sub.c,main.c,head.h 二、生成静态库  CMakeLists.txt  CMakeLists.txt   (也可以写成这样) 执行命令:  三、生成动态库 CMakeLists.txt    CMakeLists.txt   (也可以写成这样) 

    2024年01月16日
    浏览(44)
  • 现代CMake高级教程 - 第 3 章:链接库文件

    双笙子佯谬老师的【公开课】现代CMake高级教程课程笔记 main.cpp 调用 mylib.cpp 里的 say_hello 函数 1. 直接链接到一起编译 2. mylib 作为一个静态库 编译: 生成了 libmylib.a: 3. mylib 作为一个动态库 编译: 4. mylib 作为一个对象库 对象库类似于静态库,但不生成 .a 文件,只由 CMake

    2024年02月02日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包