GCC系列之 静态库(二)
来源:互联网 发布:mix有windows版吗 编辑:程序博客网 时间:2024/06/14 21:43
上面讲述了静态库的加载是按需加载的方式进行的,本篇主要讲多个静态库加载的先后顺序和他们之间的依赖关系有关。
还是上面几个文件为例 c1.c为新加入的文件 main.c有所改动:
//c1.cvoid f1_run1(void);void c1_run1(void){ f1_run1();}
//main.c//void f1_run1(void);//void f1_run2(void);//void f2_run1(void);//void f2_run2(void);void c1_run1(void);int main(int argc, char **argv){ c1_run1(); return 0;}
由上面可以 c1.c 依赖于f1.c
将c1.c编成静态库libmyc.a (由于和libc.so 标准库名字冲突 哈哈 故加了个my)
此时编译main.c 注意libmyc.a 依赖于libf.a
根据链接的规则依赖别人的放在别人的前面
所以myc 要在 f之前:
如果交换位置会报出未定义的引用的错误:
其实大家可以做个实验 即使这2个库正确 如果把main.c放到最后 即 gcc -L. -lmyc -lf main.c
main.c中调用的函数编译器也会报出类似的问题
动态库和动态库之间不存在这个问题,后面将继续深入讲解 混合使用的时候的各种情况还有gcc一些参数
如-Wl,--allow-shlib-undefined 等等
- GCC系列之 静态库(二)
- GCC系列之 静态库(一)
- gcc之静态库文件
- GCC系列: 加载静态链接库
- gcc编译工具生成动态库和静态库之二----实例
- GCC系列教程 二
- gcc之静态库和动态库
- GCC学习笔记(二)--静态库与共享库
- Spring mvc系列八之 页面静态化(二)
- Spring mvc系列八之 页面静态化(二)
- gcc编译流程和 gcc静态库和动态库(二)
- 动态库技术之二-静态库函数
- gcc、动态库、静态库
- GCC强制链接静态库
- 利用GCC制作静态库
- gcc 编译静态链接库
- gcc创建,使用静态库
- Linux下GCC生成和使用静态库和动态库详解(二)
- Linux crontab命令小结
- Android HOME键的屏蔽. 同事小伟 提供
- DirectDraw 创建表面
- SQL日期操作及只获取日期的方法
- 入门级文档
- GCC系列之 静态库(二)
- 一条命令检测你的机器是否支持 3D Unity 界面
- SQL Server 2008定时作业的制定(SQL2005参考此方法)
- ubuntu 安装eclipse
- vc6++Release和Debug
- 多线程复制 轻松提高复制速度
- xml webservice
- 测试
- 每天读一遍,不久你就会变! .