Linux动态库的制作

Linux操作系统支持的函数库分为:
静态库,libxxx.a,在编译时就将库编译进可执行程序中。
优点:程序的运行环境中不需要外部的函数库。
缺点:可执行程序大
动态库,又称共享库,libxxx.so,在运行时将库加载到可执行程序中。
优点:可执行程序小。

Linux动态库的制作

1.生成目标文件:gcc -c -o sub.o sub.c

2.动态函数库创建命令gcc -shared -fpic -o libsub.so sub.o

‐fpic :产生位置无关代码。
‐shared :生成共享库。
用上述命令生成 libsub.so 动态函数库。
此时还不能立即 ./out ,因为在动态函数库使用时,会查找 /usr/lib /lib 目录下的动态函数库,而此时我们生成的库不在里边。

main.c和sub.c的文件内容可以参考上发表的上一个文章 Linux静态库的制作

先删除目标文件:lpych@lpych-virtual-machine:~$ rm sub.o

在创建目标文件:lpych@lpych-virtual-machine:~$ gcc -c -o sub.o sub.c

然后

 第一种方法

 第二种方法(环境变量方法)

第三种方法(需要管理员权限。先sudo vi /etc/ld.so.conf 然后输入密码,在文本里面添加需要执行的main.c所在的目录 /home/lpych

然后再用管理员权限运行一遍 ldconfig /etc/ld.so.conf即可

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QAM MMA

MMA是改进的CMA,有RCA和CMA的优点,还能对相位误差进行修正。 N 5e5; % 仿真符号数 M 16; % QAM16msg randi([0 M-1],N,1); % 产生随机符号 tx qammod(msg,M); % QAM调制test_snr 20:5:30; …

Springboot 校园安全通事件报告小程序系统-计算机毕业设计源码02445

Springboot 校园安全通事件报告小程序系统 摘 要 随着中国经济的飞速增长,消费者的智能化水平不断提高,许多智能手机和相关的软件正在得到更多的关注和支持。其中,校园安全通事件报告小程序系统更是深得消费者的喜爱,它的出现极大…

PyPDF2拆分PDF文件的高级应用:指定拆分方式

本文目录 前言一、拆分方式选择1、代码讲解2、实现效果图3、完整代码前言 前两篇文章,分别讲解了将使用PyPDF2将PDF文档分割成为单个页面、在分割PDF文档时指定只分割出指定页面,如果你还没有看过,然后有需要的话,可以去看一下,我把文章链接贴到这里: PyPDF2拆分PDF文件…

近红外光谱脑功能成像(fNIRS):1.光学原理、变量选取与预处理

一、朗伯-比尔定律与修正的朗伯-比尔定律 朗伯-比尔定律 是一个描述光通过溶液时被吸收的规律。想象你有一杯有色液体,比如一杯红茶。当你用一束光照射这杯液体时,光的一部分会被液体吸收,导致透过液体的光变弱。朗伯-比尔定律告诉我们&#…

2024中国西安科博会暨硬科技产业博览会11月召开

2024第18届中国西安国际科学技术产业博览会暨硬科技产业博览会 时间:2024年11月3日-5日 地点:西安国际会展中心 主办单位:中国国际科学技术合作协会 陕西省科技资源统筹中心 协办单位:西安市科学技术协会 西安市中小企业协会、…

IO多路复用学习

Linux中的I/O多路复用 相关基础概念 在学习I/O多路复用之前,先学习一些相关的基础概念,便于理解。 内核缓冲区和用户缓冲区 😮 CPU 上会运行两种程序,一种是操作系统的内核程序(也称为系统程序)&#x…

强行仅用time.localtime制作“日历牌”——全程记录“顶牛”“调戏”我的AI学习搭子

强行只用time.localtime制作“日历牌”,码好代码试炼通过,想榨取ai智能优化算法,结果失败。本文详细记录“顶牛”全过程。 (笔记模板由python脚本于2024年07月01日 19:16:26创建,本篇笔记适合喜欢python,喜欢搞“事儿”…

I2C bus,adaptor,client 在sysfs 的路径定位

i2c bus 路径 struct bus_type i2c_bus_type {.name "i2c",.match i2c_device_match,.probe i2c_device_probe,.remove i2c_device_remove,.shutdown i2c_device_shutdown, }; EXPORT_SYMBOL_GPL(i2c_bus_type);static int __init i2c_init(void) {int re…

【Linux】线程封装与互斥(万字)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 C多线程的用法 对原生线程进行一次封装 理解pthread线程 Linux线程互斥 进程线程间的互斥相关背景概念 互斥量mutex 操作共享变量会有问题的售票…

数字信号处理教程(2)——时域离散信号与时域离散系统

上回书说到数字信号处理中基本的一个通用模型框架图。今天咱们继续,可以说今天要讲的东西必须是学习数字信号处理必备的观念——模拟与数字,连续和离散。 时域离散序列 由于数字信号基本都来自模拟信号,所以先来谈谈模拟信号。模拟信号就是…

小米MIX Fold 4折叠屏手机背面渲染图曝光

ChatGPT狂飙160天,世界已经不是之前的样子。 更多资源欢迎关注 7 月 3 日消息,消息源 Evan Blass 今天在 X 平台发布推文,分享了小米 MIX Fold 4 折叠屏手机的高清渲染图(图片有加工成分在,最终零售版本可能会存在差异…

基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建基于Hadoop的全分布式集群---任务1:运行环境说明

任务描述 项目的运行环境是基于Hadoop的全分布式模式集群。 任务的主要内容是规划集群节点及网络使用,准备初始环境,关闭防火墙和Selinux。 任务指导 1. 基于Hadoop的全分布式模式集群,如下图所示; 2. 硬软件环境:…

微信小程序转发朋友圈详细教程

微信小程序转发朋友圈功能,官方说的很官方,容易踩坑 官方链接戳这里 想分享朋友圈必须要分享好友 onShareTimeline() { } 想要生效必须先定义 onShareAppMessage() { } /*** 用户点击右上角分享*/onShareAppMessage() { },onShareTimeline() { } 简单…

当《开心消消乐》遇上 AI 推理,我们找到了高质量关卡背后的原因!

随着 AI 热潮席卷各行各业,其落地应用已经成为企业技术研发升级的工作重心。人工智能应用的升级不仅需要软件层面的升级迭代,还需要大规模基础设施的支撑。然而,自行搭建大规模算力、存储基础设施对于大多数企业而言都存在技术难度、人力资源…

OBD诊断(ISO15031) 04服务

文章目录 功能简介ISO 9141-2、ISO 14230-4和SAE J1850的诊断服务定义1、清除/重置与排放相关的诊断信息请求消息定义2、请求与排放相关的DTC响应消息定义3、报文示例 ISO 15765-4的诊断服务定义1、请求与排放相关的DTC请求消息定义2、请求与排放相关的DTC响应消息定义3、否定响…

网络基础:OSPF 协议

OSPF(Open Shortest Path First)是一种广泛使用的链路状态路由协议,用于IP网络中的内部网关协议(IGP)。OSPF通过在网络中的所有路由器之间交换路由信息,选择从源到目的地的最优路径。OSPF工作在OSI模型的第…

Python处理excel数据详解

1.导入文件 注意:要把excel放到跟你的python文件在同一个地方 import pandas as pd import numpy as np dfpd.read_excel("鸢尾花训练数据.xlsx",engine"openpyxl") import pandas 先引入 (若没有下载 需要在终端下载 pip install pandas)…

【C语言】enum 关键字

在C语言中,enum关键字用于定义枚举类型。枚举是一种用户自定义的数据类型,由一组命名的整型常量构成。使用枚举可以提高代码的可读性和可维护性,特别是在表示一组相关的常量时。 定义和使用枚举类型 基本定义 要定义一个枚举类型&#xff…

机器人控制系列教程之Delta机器人轨迹规划

并联机器人轨迹规划原理 轨迹规划:并联机器人的轨迹规划相比于串联机器人更加严苛,因为在大多数工作场合都有高速、高精度、轻载的特征。其一般运动轨迹为 Point-To-Point,对这始末两点的轨迹规划在 Delta 机器人乃至所有机器人领域具有重要…

01 数据采集层 流量分发第一步规范采集海量数据

《易经》:“初九:潜龙勿用”。潜龙的意思是隐藏,阳气潜藏,阳爻位于最下方称为“初九”,龙潜于渊,是学而未成的阶段,此时需要打好基础。 而模块一我们就是讲解推荐系统有关的概念、基础数据体系…