美文网首页
linux编译和使用静态库动态库

linux编译和使用静态库动态库

作者: 江河湖海洋 | 来源:发表于2022-10-18 15:41 被阅读0次

编译静态库
gcc -c test.c -o test.o
ar rcs -o libtest.a test.of
//用ar libtest.a查看libtest.a包含哪些文件

生成动态库
gcc -c test.o -fPIC test.c
gcc -shared -fPIC -o libmyshared.so test.c

//同时链接静态库和动态库
g++ cpp文件 -I目录 -Wl,-Bstatic -l静态库名 -Wl,-Bstatic -l静态库名 -Wl,-Bdynamic -Wl,--as-needed

动态静态混用

-Wl, -Bstatic -l -Wl,-Bdynamic

只用静态

-static -l

linux 将多个静态库合并成一个静态库
方法一

应用方式,不是硬编码进去的

ar crsT libAll.a libA.a libB.a
方法二
ar x libA.a
ar x libB.a
ar crs libAll.a *.o
ranlib libAll.a
方法三
新建libTmp.mri,文件内容
create libAll.a
addlib libA.a
addlib libB.a
addlib libC.a
save
end
命令行执行: ar -M << libTmp.mri

cmake不能直接把多个静态库合成一个静态库,要么在命令行将多个静态库合成合成
方法一
ar crsT libAll.a libA.a libB.a
方法二
ar x libA.a
ar x libB.a
ar crs libAll.a *.o
ranlib libAll.a
要么通过cmake间接合成,先生成一个本项目的静态库libA.a(不包含其他库)
再生成可执行文件时将libA.a和其他静态库合成 libMerege.a

相关文章

  • Linux动态库

    深入探讨Linux静态库与动态库的详解(一看就懂)Linux下动态库的生成和使用Linux下动态库生成和使用转-u...

  • linux下静态库和动态库创建和使用

    linux静态库 .a ===== win 静态库 .lib linux动态库 .so ==== win动态库 ....

  • Xcode7中创建静态库

    一、静态库和动态库的区别: 静态库和动态库是相对编译期和运行期的,静态库以 .a 和 .framework 形式存...

  • 创建静态库

    一、静态库和动态库的区别: 静态库和动态库是相对编译期和运行期的,静态库以 .a 和 .framework 形式存...

  • iOS静态库及动态库

    2018-06-19 浅析静态库链接原理编译原理以及什么是静态库和动态库 转之: iOS 静态库和动态库(库详解)...

  • Ndk生成so和a库,然后主项目进行调用

    在 NDK 开发中引入第三方静态库和动态库 静态库和动态库 静态库 静态库文件后缀一般为 .a ,利用静态库编译成...

  • iOS 静态库Framework开发(包含静态库,bundle使

    静态库和动态库 静态库和动态库是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要...

  • 2020-10-07

    Linux学习4 Linux下制作和使用静态库和动态库[https://www.cnblogs.com/WindS...

  • iOS静态库和动态库的区别

    iOS开发中静态库和动态库区别: 静态库和动态库是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程...

  • iOS静态库和动态库的使用

    iOS开发中静态库和动态库区别 静态库和动态库是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序...

网友评论

      本文标题:linux编译和使用静态库动态库

      本文链接:https://www.haomeiwen.com/subject/amwezrtx.html