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

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

发布时间:2022-11-15 10:47:14 所属栏目:Linux 来源:
导读:  静态库(.a文件)的开发

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

  //将代码编译成.o文件
  gcc -c *.cpp
  //由.a文件生成静态库
  ar rcs libtest.a *.o
  静态库的使
  静态库(.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"
 

(编辑:PHP编程网 - 钦州站长网)

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