Linux_动静态库

news2024/11/27 20:39:58
  • 动态库
  • 静态库

刚开始学编程时,需要下载一个环境(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.coloradmin.cn/o/1448566.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MacOS - M1芯片 Mac 在“恢复”模式中启用系统扩展教程

部分软件需要开启系统扩展才能正常使用,但是默然M1芯片的Mac不能直接打开系统扩展,如下两图。 若要启用系统扩展,您需要在“恢复”环境中修改安全性设置。 若要执行此操作,请将系统关机,然后按住触控ID或电源按钮以开…

中国判决生效,诺基亚全面与中国手机签署授权协议,降低专利费

日前媒体报道指诺基亚与中国两家手机企业都签署了专利授权协议,全面结束诉讼,而这一切正是在OPPO于去年底在重庆法院就OPPO与诺基亚的专利费诉讼问题,做出裁决之后,要求诺基亚按公平、公正等合理收费原则收取专利费。 这几年诺基亚…

猫头虎分享已解决Bug || ImportError: cannot import name ‘relu‘ from ‘keras.layers‘

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

无人机飞行控制系统功能,多旋翼飞行控制系统概述

飞行控制系统存在的意义 行控制系统通过高效的控制算法内核,能够精准地感应并计算出飞行器的飞行姿态等数据,再通过主控制单元实现精准定位悬停和自主平稳飞行。 在没有飞行控制系统的情况下,有很多的专业飞手经过长期艰苦的练习&#xff0…

Git基础命令,分支,标签的使用【快速入门Git】

Git基础命令,分支,标签的使用【快速入门Git】 Git基础常用命令Git工作流程工作区,暂存区和版本库文件状态获取Git仓库 git init | git clone查看文件状态 git status暂存已修改的文件 git add 查看已暂存和未暂存的修改 git diff提交文件更改…

【光学】学习记录1-几何光学的近轴理论

课程来源:b站资源-光学-中科大-崔宏滨老师(感谢),本系列仅为自学笔记 【光学 中科大 崔宏滨老师 1080p高清修复(全集)】https://www.bilibili.com/video/BV1NG4y1C7T9?p2&vd_source7ba37b2cff2a1b783…

用Python探秘2024年春晚刘谦魔术:两步揭开神秘面纱

在2024年的春晚舞台上,刘谦的魔术表演再次引发了全国观众的热议。他的每一个动作、每一次变换都充满了神秘与未知,让人在惊叹的同时也好奇其背后的秘密。今天,我们将用Python来模拟实现刘谦的一个魔术,并尝试通过两步揭秘其背后的…

探讨java系统中全局唯一ID实现方案

为什么需要全局唯一ID 我们这里引用美团 Leaf 的场景介绍:在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据分库分表后需要有一…

Hive3.1.2——企业级调优

前言 本篇文章主要整理hive-3.1.2版本的企业调优经验,有误请指出~ 一、性能评估和优化 1.1 Explain查询计划 使用explain命令可以分析查询计划,查看计划中的资源消耗情况,定位潜在的性能问题,并进行相应的优化。 explain执行计划…

C# EventHandler<T> 示例

新建一个form程序,在调试窗口输出执行过程; 为了使用Debug.WriteLine,添加 using System.Diagnostics; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using S…

【Qt】qt常用控件之QIcon 以及 qrc机制设置图片路径(QtCreator)

文章目录 1. QIcon / windowIcon2. setIcon() 与 setwindowIcon()2.1 setIcon() 介绍与使用2.2 setWindowIcon 介绍与使用 3. 路径问题 & qrc机制的引入3.1 绝对路径 / 相对路径 的问题3.2 qrc机制3.3 在QtCreator下利用qrc机制引入图片 1. QIcon / windowIcon QIcon QIco…

Nacos 的配置管理和配置热更新

一、配置管理的必要性 1. 存在问题 微服务重复配置过多维护成本高:将各个微服务的配置都写到配置管理服务中,单个微服务不去编写配置,而是到配置管理服务中读取配置,实现配置共享,便于修改和维护 业务配置经常变动&a…

七天入门大模型 :LLM和多模态模型高效推理实践

前两天,我们已分享了 七天入门大模型 :LLM大模型基础知识最全汇总七天入门大模型 :提示词工程 Prompt Engineering,最全的总结来了! 今天我们继续分享相关内容,需要技术交流、答疑的小伙伴,可…

传统推荐算法库使用--mahout初体验

文章目录 前言环境准备调用混合总结 前言 郑重声明:本博文做法仅限毕设糊弄老师使用,不建议生产环境使用!!! 老项目缝缝补补又是三年,本来是打算直接重写写个社区然后给毕设使用的。但是怎么说呢&#xff…

JavaScript中的Symbol:加密与安全性

JavaScript中的Symbol是一种唯一且不可变的数据类型,引入了一种新的基本数据类型,用于表示独一无二的标识符。在本文中,我们将深入介绍JavaScript中的Symbol,讨论如何将其应用于JS加密中,提供案例代码,并说…

每日一题(数字颠倒,单词倒排)

数字颠倒_牛客题霸_牛客网 (nowcoder.com) #include <stdio.h>int main() {char arr[100];gets(arr);int lenstrlen(arr);for(int ilen-1;i>0;i--){printf("%c",arr[i]);}return 0; } 单词倒排_牛客题霸_牛客网 (nowcoder.com) #include <stdio.h> #…

PLC_博图系列☞参数实例

PLC_博图系列☞参数实例 文章目录 PLC_博图系列☞参数实例背景介绍参数实例参数实例的工作原理创建参数实例将实例作为参数传送 关键字&#xff1a; PLC、 西门子、 博图、 Siemens 、 参数实例 背景介绍 这是一篇关于PLC编程的文章&#xff0c;特别是关于西门子的博图软件…

如何使用idea连通服务器上的Redis(详细版本)

这里我使用的是阿里云的服务器 打开阿里云的安全组&#xff0c;设置端口为6379 在redis.conf文件中&#xff0c;注释bind 127.0.0.1 将protected-mode设置为no&#xff0c;即关闭保护模式 更改服务器中的防火墙&#xff0c;放行6379端口 # 放行端口 firewall-cmd --zo…

Three.js学习7:dat.GUI 参数控制

每个学 Three.js 的都被安利了 dat.GUI 吧&#xff1f; 我也不例外&#xff01; 今天就来了学习下 dat.GUI&#xff0c;并记录下来自己的学习成果。 一、什么是 dat.GUI? dat.GUI 是一个轻量级的图形用户界面库&#xff08;GUI 组件&#xff09;&#xff0c;使用这个库可以…

【Zigbee课程设计系列文章】Zigbee开发环境搭建

【Zigbee课程设计系列文章】Zigbee开发环境搭建 前言IAR 下载安装Z-Stack协议栈安装 &#x1f38a;项目专栏&#xff1a;【Zigbee课程设计系列文章】&#xff08;附详细使用教程完整代码原理图完整课设报告&#xff09; 前言 &#x1f451;由于无线传感器网络&#xff08;也即…