![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux链接、动态库和静态库
介绍linux下gcc的链接、动态库、静态库的一些问题,配合实例讲解
zhensansan
这个作者很懒,什么都没留下…
展开
-
链接、装载和库看完这个系列就够了(七)(静态库封装)
开发中,我们有时候需要把相关的功能模块做成库的时候提供给其他人使用,我们谈一下静态库的方式。方式一//lib_a1.c #include <stdio.h>int a1_fun(){ printf("a1_fun\n"); return 0;}//lib_a2.c int a1_fun();int a2_fun(){ ...原创 2020-03-29 17:35:48 · 182 阅读 · 0 评论 -
链接、装载和库看完这个系列就够了(六)(-Wl,-export-dynamic参数)
参数原创 2020-03-23 17:50:49 · 1022 阅读 · 0 评论 -
链接、装载和库看完这个系列就够了(五)(符号同名问题续)
更加复杂的问题原创 2020-03-13 21:27:50 · 154 阅读 · 0 评论 -
链接、装载和库看完这个系列就够了(四)(符号同名问题)
动态库链接顺序导致的同名问题到现在我们讨论的问题都是编译链接过程中的报错问题,现在外面来看一下链接顺序导致程序运行输出不一致的问题,这种问题主要是符号同名导致。符号同名问题相比之前的问题更加常见。现在我们来看一下同名问题如果两个静态库包含相同的符号名,那么同时链接会导致编译错误...原创 2020-03-08 13:32:00 · 185 阅读 · 0 评论 -
链接、装载和库看完这个系列就够了(三)(动态库链接问题)
测试代码前面谈到了静态库的链接顺序问题,我们看一下动态库是否也有链接问题。动态库链接顺序问题直接上代码://lib_so1.c #include "lib_so1.h"int so1_fun(){ return 0;}//lib_so2.c #include "lib_so2.h"#include "lib_so1.h"int so2_fun(){ ...原创 2020-03-02 08:22:04 · 233 阅读 · 0 评论 -
链接、装载和库看完这个系列就够了(二)(静态库链接顺序问题续)
测试代码单个.o链接生成静态库让我们来继续深入的了解一下静态库的链接问题,我们把函数在每个静态库中再添加一个函数,同时修改一下Makefile://lib_a1.c #include "lib_a1.h"int a1_fun(){ return 0;}int a1_fun2(){ return 0;}//lib_a2.c #include...原创 2020-03-01 09:12:24 · 250 阅读 · 0 评论 -
链接、装载和库看完这个系列就够了(一)(静态库链接顺序问题)
初衷工作中经常会碰到不同平台之间移植代码,项目中引入各种开源库,经常会碰到很多奇怪的编译、链接问题,这里做一下整理,尽量包含常见的大部分问题。首先我们来关注一下链接顺序引发的问题。静态库链接顺序问题一、正常情况下(每个静态库之间没有相互依赖关系),静态库之间链接顺序是不需要关注的,但是如果两个库之间存在相互的调用,就会出现链接问题,看一个例子://lib_a1.c#include "li...原创 2020-02-29 14:27:18 · 584 阅读 · 2 评论