Linux动态库

news2024/12/23 6:28:06

定义:动态函数库,是在程序执行时动态(临时)由目标程序去调用

优点:

调用时不复制,程序运行时动态加载到内存,供程序调用,系统只加载一次,多个程序可以共用,节省内存。
程序升级简单,因为app里面没有库的源代码,升级之后只要库的名字不变,函数名以及参数不变,只是实现做了优化,就能加载成功。
缺点:

加载速度比静态库慢,占用内存大
版本更新麻烦,发布程序需要提供依赖的动态库
 

命名规则:动态库文件名的命名方式是“libxxx.so”,库名前加”lib”,后缀用”.so”,“xxx”为动态库名。

动态库的制作:

生成 .so 文件: gcc -shared -fpic SumSub.c -o libSum.so

 -shared :指定生成动态库

-fpic  标准:fPIC 选项作用于编译阶段,在生成目标文件时就得使用该选项,以生成位置无关的代码。

动态库的使用: 

gcc main.c -lSumSub -L ./ 

-L告诉gcc编译器从-L制定的路径去找动态库。默认是从/usr/lib 或 /usr/local/lib去找,可以修改 ,如:gcc main.c -I ./include/ -L ./lib -lmycalc 

如果编译后无法运行:

提示找不到.so文件,需要把编译的动态库放到Linux的 /usr/lib

使用sudo cp libfilename.so /usr/lib 再次运行 

另一种常用方法: 设置指定动态库的临时位置(只能在当前位置使用):

 比如配置临时环境变量,只针对当前路径 export LD_LIBRARY_PATH="/home/pi/你的文件路径"

改进:

通过shell脚本命令,把环境变量和./main放进去,给脚本增加可执行权限:vi start.sh
写入: export LD_LIBRARY_PATH="/home/pi/你的文件路径"
./main

保存
增加权限:chmod +x start.sh
最后运行./start.sh

du xxx查看内存大小

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

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

相关文章

百亿、补贴这种低价怎么控

随着电商平台流量竞争的激烈演变,越来越多的促销形式进入人们的眼球,而店铺最简单的营销就是通过价格,所以低价销售成了各平台吸引消费者的方式,百亿补贴因为其独特的属性,与平台挂钩,通过“全网最低价”的…

VB在窗体中显示1000以内的完数

VB在窗体中显示1000以内的完数 在窗体中显示1000以内的完数(如果一个整数的所有因子(包括1,但不包括本身)之和与该数相等,则称这个数字为完数。例如6123,所以6是一个完数) Private Function Is…

【前端知识】Three 学习日志(五)—— 点光源辅助观察

Three 学习日志(五)—— 点光源辅助观察 一、引入点光源辅助观察 // 光源辅助观察 const pointLightHelper new THREE.PointLightHelper(pointLight, 10); scene.add(pointLightHelper);二、改变点光源位置 // 点光源位置 pointLight.position.set(2…

[补题记录] Atcoder Beginner Contest 308(C~E)

URL:https://atcoder.jp/contests/abc308 目录 C Problem/题意 Thought/思路 Code/代码 D Problem/题意 Thought/思路 Code/代码 E Problem/题意 Thought/思路 Code/代码 C Problem/题意 给出n个(a,b)数对&#xff…

短视频矩阵系统源代码开发搭建分享--代码开源SaaS

一、什么是短视频矩阵系统? 短视频矩阵系统是专门为企业号商家、普通号商家提供帐号运营从流量 到转化成交的一站式服务方案,具体包含:点赞关注评论主动私信 ,评论区回复,自动潜客户挖掘,矩阵号营销&#x…

H3C ER G2系列路由器敏感信息泄露漏洞

声明 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 一、产品介绍 H3C ER2200G2是H3C推出的新一代高性能企业级路由器&#…

【Vue】模板语法,事件处理器及综合案例、自定义组件、组件通信

一、事件处理器 我们之前事件监听可以使用v-on 指令 1、事件修饰符 在Vue中我们通过由点(.)表示的指令后缀来调用修饰符,比如: .stop:阻止事件冒泡。当事件触发时,该修饰符将停止事件进一步冒泡到父元素。相当于调用了 event.stop…

CoreData 在新建或更新托管对象中途发生错误时如何恢复如初?

问题现象 在 CoreData 支持的 App 中,当我们新建或更新托管对象到一半突然出现错误时,应该禁止任何已发生的改变被写入内存或数据库中。不过,有时仍会出现始料未及的“意外”: 从上面的演示可以看到:即使在 Item 对象新建和更新途中出现错误后不执行后续的保存操作,但界…

决策树(中):数据挖掘十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

多通道振弦数据记录仪隧道中安全监测应用方案

多通道振弦数据记录仪隧道中安全监测应用方案 近年来,随着城市化进程的加速推进,隧道建设越来越普遍。然而,隧道建设也带来了一系列安全问题,如地质灾害、水文灾害、交通事故、火灾等。因此,对隧道的安全监测非常重要…

20230920研发面经整理

1.cpp中的虚函数和虚函数表 C中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数 虚函数表是指在每个包含虚函数的类中都存在着一个函数地址的数组。当我们用…

免费好用bpm平台,实现生产管理系统

1.什么是生产管理系统 生产制造管理系统主要是以生产制造管理为核心,其管理功能包括产品结构设置(BOM)生产计划、加工、领料、质检、库存、成本核算等。通过信息化解决行业管理问题,满足各企业科学管理的需求,并为制造…

Ubuntu上线一个JAVA环境微服务架构的系统

项目背景: 项目目的: 项目架构: 配置环境: 流程: 1、系统安装 更改root密码 sudo passwd root 设置root密码123 切换用户 su root 输入root密码123 2、开启root远程ssh 编辑配置文件 vi /etc/ssh/sshd_config 更改以下行 #PermitRootLogin prohibit-passwor…

【BeanTrimUtil】通过反射去除JavaBean中String类型数据的空格:一行代码搞定整个Bean的字符串去空!

【原文地址】 https://blog.csdn.net/qq_36170500/article/details/107250282 简化不必要的代码逻辑纯原生环境亦可运行 import java.lang.reflect.Field; import java.lang.reflect.Method;/*** author zhoudeshui v1.1* Desc 版权声明:本文为CSDN博主「一个人的编…

公众号迁移线上公证靠谱吗?

公众号账号迁移的作用是什么?只能变更主体吗?微信公众平台的帐号迁移功能可将原公众号的粉丝、文章素材、违规记录、留言功能、名称等迁移至新的公众号。通过迁移可以实现公众号的公司主体变更、粉丝转移、开通留言功能、服务号转为订阅号等作用。因此不…

电脑剪切板在哪?4个方法教你提高效率!

“我在电脑上复制了一些图像,电脑显示已经保存在了剪切板,但是我找了好久都不知道电脑的剪切板在哪。有朋友可以指点一下吗?” 电脑剪切板是计算机操作中一个常用且强大的工具,它允许你复制、剪切和粘贴文本、图像、文件等。无论是…

期权佣金是如何收取的?成交手续费是怎么计算的?

现在期权新开户佣金1.7元/张,超优惠活动! 期权佣金是默认在6元一张收取的,可以申请调低的,证券公司可以结合运营成本制定合理的期权佣金优惠费率,但是不同的客户,不同的实际情况,都可能会影响期…

UML六大关系总结

UML六大关系有:继承、关系、聚合、组合、实现、依赖。分为通过图和代码总结这些关系。 1、继承 class Bird:Animal { } 说明:一段都是子类继承父类,在子类的后面用一个冒号表示,冒号后面跟着父类的名字。继承只能继…

【前端知识】Three 学习日志(十二)—— WebGL渲染器设置(锯齿模糊)

Three 学习日志(十二)—— WebGL渲染器设置(锯齿模糊) 一、设置抗锯齿 const renderer new THREE.WebGLRenderer({antialias:true, });二、效果对比 设置前: 设置后: 三、查看并设置设备像素比 // 不同硬件设备的屏幕的设…

乐划锁屏推出“屏上看展”,用创意“解锁”艺术新体验

在移动互联网时代,手机不仅是重要的通讯工具,作为点亮屏幕后的“第一眼”,手机锁屏也为人们提供了更加集成、更加多元的信息接收渠道。为了满足人们的碎片化消遣需求,加速信息传播,OPPO依托锁屏点亮即触达的特点,将锁屏壁纸作为探索碎片化娱乐的新通道,推出了乐划锁屏。 在乐划…