
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 · 255 阅读 · 0 评论 -
链接、装载和库看完这个系列就够了(六)(-Wl,-export-dynamic参数)
参数原创 2020-03-23 17:50:49 · 1169 阅读 · 0 评论 -
链接、装载和库看完这个系列就够了(五)(符号同名问题续)
更加复杂的问题原创 2020-03-13 21:27:50 · 235 阅读 · 0 评论 -
链接、装载和库看完这个系列就够了(四)(符号同名问题)
动态库链接顺序导致的同名问题 到现在我们讨论的问题都是编译链接过程中的报错问题,现在外面来看一下链接顺序导致程序运行输出不一致的问题,这种问题主要是符号同名导致。符号同名问题相比之前的问题更加常见。现在我们来看一下同名问题 如果两个静态库包含相同的符号名,那么同时链接会导致编译错误 ...原创 2020-03-08 13:32:00 · 276 阅读 · 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 · 294 阅读 · 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 · 332 阅读 · 0 评论 -
链接、装载和库看完这个系列就够了(一)(静态库链接顺序问题)
初衷 工作中经常会碰到不同平台之间移植代码,项目中引入各种开源库,经常会碰到很多奇怪的编译、链接问题,这里做一下整理,尽量包含常见的大部分问题。首先我们来关注一下链接顺序引发的问题。 静态库链接顺序问题 一、正常情况下(每个静态库之间没有相互依赖关系),静态库之间链接顺序是不需要关注的,但是如果两个库之间存在相互的调用,就会出现链接问题,看一个例子: //lib_a1.c #include "li...原创 2020-02-29 14:27:18 · 684 阅读 · 2 评论