gcc编译工具生成动态库和静态库之二----实例【转】

(转自:https://blog.****.net/yanlaifan/article/details/52193118

gcc编译工具生成动态库和静态库之二----实例
    
上篇讲述了gcc使用规则,工欲善其事必先利其器,接下来,用实践检验真理。

一、工程树

gcc编译工具生成动态库和静态库之二----实例【转】
工程树目录图

exe目录中存放可执行文件;lib目录中存放动态库文件或静态库文件;source中存放源文件;include目录中存放头文件。

二、源文件和头文件内容

1、源文件
gcc编译工具生成动态库和静态库之二----实例【转】
main.c 源文件

gcc编译工具生成动态库和静态库之二----实例【转】
add.c 源文件

gcc编译工具生成动态库和静态库之二----实例【转】

max.c源文件

gcc编译工具生成动态库和静态库之二----实例【转】
minus.c源文件

gcc编译工具生成动态库和静态库之二----实例【转】
sum.c源文件

2、头文件
gcc编译工具生成动态库和静态库之二----实例【转】
my.h头文件

gcc编译工具生成动态库和静态库之二----实例【转】
max.h头文件

gcc编译工具生成动态库和静态库之二----实例【转】
minus.h头文件

gcc编译工具生成动态库和静态库之二----实例【转】
add.h头文件


三、生成静态库

gcc编译工具生成动态库和静态库之二----实例【转】
静态库生成方法

gcc编译工具生成动态库和静态库之二----实例【转】
工程树中多了一个静态库文件

gcc编译工具生成动态库和静态库之二----实例【转】
查看文件类型




四、生成动态库

gcc编译工具生成动态库和静态库之二----实例【转】
动态库生成方法

gcc编译工具生成动态库和静态库之二----实例【转】
工程树中多了一个动态库

gcc编译工具生成动态库和静态库之二----实例【转】
查看动态库相关信息


五、生成可执行文件
gcc编译工具生成动态库和静态库之二----实例【转】
生成可执行文件

gcc编译工具生成动态库和静态库之二----实例【转】

运行结果
六、编译细节
gcc编译工具生成动态库和静态库之二----实例【转】
源文件 main.c

gcc编译工具生成动态库和静态库之二----实例【转】
预处理文件 main.i

gcc编译工具生成动态库和静态库之二----实例【转】
main.i 文件内容 

gcc编译工具生成动态库和静态库之二----实例【转】
编译

gcc编译工具生成动态库和静态库之二----实例【转】
汇编

gcc编译工具生成动态库和静态库之二----实例【转】
连接生成可执行文件


七、静态库生成遇到问题
gcc编译工具生成动态库和静态库之二----实例【转】
遇到问题


八、环境变量LD_LIBRARY_PATH设置
gcc编译工具生成动态库和静态库之二----实例【转】
将动态库路径放入全局变量中