Linux_动静态库

  • 动态库
  • 静态库

刚开始学编程时,需要下载一个环境(vs2019),这个环境包括编译器和标准库,标准头文件。那么什么是库呢,库和头文件有什么关系呢?

  • 头文件里面放的函数声明,库文件里面放的是函数定义,因此头文件和库两者密不可分。

在Linux中静态库通常命名为libxxx.a,动态库通常命名为libxxx.so,但库的名字是去掉前缀lib和后缀后的字符串。比如libc.so 这个库的真实名字就是c

1.静态库的打包
  1. 将两个源文件编译为可重定位二进制文件(.o)
  2. ar -rc libxx.a *.o
  3. gcc Main.c -Iinclude -Llib -lxxx
    • -I 指定头文件路径 可以移到默认路径下
    • -L指定库文件路径 必须移到默认路径下
    • -l 指定库名字

image.png
ldd test :查看相关的文件

2.动态库的打包
  1. gcc -fPIC -c mysub.c gcc -fPIC -c myadd.c 形成与位置无关码
  2. gcc -shared -o libxxx.so *.o
  3. gcc -o mytest -Iinclude -Llib -lxxx,此时你告诉了编译器,但是没有告诉os,所以会报运行错误
    1. 解决办法:
      1. 环境变量:LD_LIBRARY_PATH
      2. 加入系统默认路径-软链接方式
      3. 配置文件:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/468099.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot3自定义异常及全局异常捕获

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途。 目录 前置条件 目的 主要步骤 定义自定义异常类 创建全局异常处理器 手动抛出自定义异常 前置条件 已经初始化好一个…

建立网站的主要步骤

建立网站的主要步骤 最近,我无意中发现了一个异常有用的资源,它提供了一种令人惊叹的机会,可以获取免费的域名和SSL证书。这个资源位于https://www.rainyun.com/z22_,我迫不及待地要与你分享这个宝贵的发现。 在这个数字时代&…

ARM:AI 的翅膀,还能飞多久?

ARM(ARM.O)于北京时间 2024 年 2 月 8 日上午的美股盘后发布了 2024 年第三财年报告(截止 2023 年 12 月),要点如下: 1、整体业绩:收入再创新高。ARM 在 2024 财年第三季度(即 23Q4…

第二篇【传奇开心果微博系列】Python微项目技术点案例示例:成语接龙游戏

传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目目标二、雏形示例代码三、扩展整体思路四、玩家输入示例代码五、成语判断示例代码六、回答判断示例代码七、电脑判断示例代码八、游戏结束示例代码九、界面优化示例代码十、扩展成语库示例代…

大更新!gpt加入记忆功能,可以记忆自己的提问啦!

2月14日凌晨,OpenAI在官网宣布,正在测试ChatGPT记住用户提问内容的能力,同时可以自由控制其内存。 该功能使用户不必频繁地提问相同的内容,ChatGPT都将记住那些内容并对长对话、个性化聊天等,例如,写长文小…

实现JNDI

实现JNDI 问题陈述 Smart Software Developer Ltd.想要开发一款Web应用程序,它使用servlt基于雇员ID显示雇员信息,雇员ID由用户通过HTML用户界面传递。雇员详细信息存储在Employee_Master表中。另外,Web应用程序应显示网站被访问的次数。 解决方案 要解决上述问题,需要执…

情报搜集神器:theHarvester 保姆级教程(附链接)

一、介绍 theHarvester 是一款用于信息搜集(OSINT)的开源工具,它旨在通过收集公开可用的信息,帮助安全专业人员、渗透测试人员和研究人员获取目标域的有用信息。theHarvester 主要用于搜集电子邮件地址、子域名、主机名、虚拟主机…

双指针练习题复写零

复写零 给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 注意:请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。 示例 1&…

Xubuntu16.04系统中修改系统语言和系统时间

1.修改系统语言 问题:下图显示系统语言不对 查看系统中可用的所有区域设置的命令 locale -a修改/etc/default/locale文件 修改后如下: # File generated by update-locale LANG"en_US.UTF-8" LANGUAGE"en_US:en"LANG"en_US…

基于Robei EDA--实现串口数据包接收

一、定义串口传输协议帧 控制字的数据大小为一字节,定义帧头为(0xFE 0xDF)帧尾为(0xEF) 模块框图 内模块:串口接收,output:8位data 串口命令:对单字节数据接收进行缓存…

吉他学习:C大调第一把位音阶,四四拍曲目练习 小星星,练习的目的

第十三课 C大调第一把位音阶https://m.lizhiweike.com/lecture2/29364198 第十四课 四四拍曲目练习 小星星https://m.lizhiweike.com/lecture2/29364131 C大调第一把位音阶非常重要,可以多练习&#x

搭建网站的步骤和顺序?搭建一个网站的基本流程是什么?

搭建网站的步骤和顺序?搭建一个网站的基本流程是什么? 一.领取一个免费域名和SSL证书,和CDN 1.打开网站链接:https://www.rainyun.com/z22_ 2.在网站主页上,您会看到一个"登陆/注册"的选项。 3.点击"…