linux静态库和动态库的创建及使用

简介: linux静态库和动态库的创建及使用


有主函数和调用函数还创建了一个.h文件


提示:其中的xxx≠xxx


静态库


创建:

1、将调用文件

执行编译

gcc xxx.c -c 生成了xxx .o文件

2、输入

ar rcs libxxx.a xxx.o 生成了libxxx.a文件

使用:

我们现在有一个xxx.c主函数,.h文件 ,libxxx.a文件

gcc xxx.c -lxxx -L./(libxxx.a 进行砍头去尾)


ar命令 :查询指令是什么

-L./是指 指定当前路径去找头文件,默认的是从/usr/lib /usr/local/lib中找


动态库


创建:

gcc -shared -fpic xxx.c -o libxxx.so

使用:

gcc xxx.c -lxxx -L ./

这时有可能出现错误,知不道,我们将动态库文件放置默认文件中

执行sudo cp libxxx.so /usr/lib/

或者 指定动态库位置

创建一个shell脚本 xxx.sh

1、vi xxx.sh

2、插入内容

export LD_LIBRARY_PATH = “home/pi/back/test”

./a.out(或者使用-o后的文件)

3、退出.sh文件

4、执行 ./a.out(或者-o 后的文件)


shared 是指定生成动态库

fpic 是一种标准 以生成位置无关的代码


.h文件

是将被调用文件中需要传参的部分留下,其余删除并记得加;号

在mian 函数中 添加 #include"xxx.h"


相关文章
|
3月前
|
安全 Linux vr&ar
Linux的动态库和静态库
Linux的动态库和静态库
|
17天前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
64 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
3月前
|
Linux API
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
|
4月前
|
Oracle 关系型数据库 Linux
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
通过这一连串的步骤,可以专业且有效地在Linux下为Qt编译Oracle驱动库 `libqsqloci.so`,使得Qt应用能够通过OCI与Oracle数据库进行交互。这些步骤适用于具备一定Linux和Qt经验的开发者,并且能够为需要使用Qt开发数据库应用的专业人士提供指导。
139 1
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
|
3月前
|
Linux 网络安全 API
【Azure 应用服务】App Service For Linux 环境中,如何从App Service中获取GitHub私有库(Private Repos)的Deploy Key(RSA key)呢?
【Azure 应用服务】App Service For Linux 环境中,如何从App Service中获取GitHub私有库(Private Repos)的Deploy Key(RSA key)呢?
|
3月前
|
小程序 Linux 开发者
Linux之缓冲区与C库IO函数简单模拟
通过上述编程实例,可以对Linux系统中缓冲区和C库IO函数如何提高文件读写效率有了一个基本的了解。开发者需要根据应用程序的具体需求来选择合适的IO策略。
29 0
|
4月前
|
Linux 编译器 vr&ar
【Linux】静态库和动态库
本文详细介绍了Linux系统中静态库和动态库的概念、区别、制作与使用方法,包括它们在链接时的区别、加载机制以及优缺点。
47 0
|
4月前
|
Linux Shell vr&ar
【linux】详解——库
【linux】详解——库
|
6月前
|
Linux vr&ar C语言
|
6月前
|
存储 Linux 编译器
Linux静态库与动态库的使用
Linux静态库与动态库的使用