加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux下静态库和动态库的开发与使用

发布时间:2022-10-24 15:02:44 所属栏目:Linux 来源:未知
导读: 静态库(.a文件)的开发
通过test.h和test.cpp生成静态库libtest.a,其编译命令为
//将代码编译成.o文件
gcc -c *.cpp
//由.a文件生成静态库
ar rcs libtest.a *.o
静态库的使用

1、-I(incl

静态库(.a文件)的开发

通过test.h和test.cpp生成静态库libtest.a,其编译命令为

//将代码编译成.o文件
gcc -c *.cpp

//由.a文件生成静态库
ar rcs libtest.a *.o

静态库的使用

linux动态库_linux查看库版本_种子库动态

1、-I(include)指定编译时头文件搜索目录

2、-L(link)指定链接时搜索lib文件的目录

3、-l(lib)指定要链接的库,此时不需要指定前缀lib和后缀.a

执行命令

gcc -I ./include -L ./lib main.cpp -o main.out ?-ltest -lstdc++

由于代码中使用了c++的标准库,故增加了命令-lstdc++,命令中的-ltest就是链接的libtest.a静态库

动态库(.so)的开发

假设有test_so.h和test_so.cpp文件,需要通过这两个文件生成动态库libtest_so.so

执行命令:

gcc -fPIC -shared test_so.cpp -o libtest_so.so

多个文件的话

gcc -fPIC -shared xxx1.c xxx2.c xxx3.c -o libxxx.so?

动态库的使用

与静态库的使用一样,但唯一区别就是要通过(-Wl,-rpath="xxxxxx")指定.so文件的加载路径linux动态库,若不指定则从系统默认路径中加载,以下指定从.out文件当前目录下的lib文件中加载动态库

gcc -I ./include -L ./lib main.cpp -o main.out ?-ltest_so -lstdc++ -Wl,-rpath="./lib"

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!