Linux动静态库

生成静态库:

1.自行编写.h和.c文件

2.将.c文件生成为.o文件

3.将.o文件打包为静态库

4.将头文件和库结合

使用静态库:

1.指定头文件和库的路径

-I 指定头文件目录 -L 指定库文件目录 -l 指定具体是哪个库

2.将库和头文件拷贝到系统目录下

这是搜索头文件和库文件的默认目录,不需要-L和-I指定位置但是仍需要使用-l指定是哪个库

生成动态库

和静态库大同小异,区别之一是使用生成.o文件的时候需要加上-fPIC选项

例如:gcc -fPIC -c add.c

区别之二是在打包的时候使用gcc -shared -o libadd.so add.o即可。

使用动态库

1.将头文件和库拷贝至系统路径

2.设置LD_LIBRARY_PATH的路径,LD_LIBRARY_PATH是Linux系统下的环境变量名,类似于Path(设置可执行文件的搜索路径)

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: (后面是路径)

3.配置/etc/ld.so.conf.d/

在/etc/ld.so.conf.d/下新建.conf配置文件,里面写入库路径,保存退出后使用sudo ldconfig命令即可。

相关推荐
落笔画忧愁e3 小时前
扣子Coze飞书多维表插件添加数据记录
java·服务器·飞书
Two_brushes.5 小时前
【linux 网络】网络基础
linux·网络
Code Warrior5 小时前
【Linux】基础开发工具(3)
linux·服务器
鬼才血脉6 小时前
Linux(centos)安装 MySQL 8
linux·mysql·centos
guygg886 小时前
ubuntu手动编译VTK9.3 Generating qmltypes file 失败
linux·运维·ubuntu
JeffersonZU7 小时前
Linux/Unix 套接字Socket编程(socket基本概念,流程,流式/数据报socket,Unix domain socket示例)
linux·c语言·tcp/ip·udp·unix·gnu
Two_brushes.8 小时前
【linux网络】网络编程全流程详解:从套接字基础到 UDP/TCP 通信实战
linux·开发语言·网络·tcp/udp
夕泠爱吃糖8 小时前
Linux中的静态库和动态库
linux·运维·服务器
Vic101018 小时前
Java 开发笔记:多线程查询逻辑的抽象与优化
java·服务器·笔记
比奥利奥还傲.9 小时前
Linux运维安全新范式:基于TCPIP与SSH密钥的无密码认证实战
linux·运维·安全