创建一个静态库文件
||
本文共440字。
Copyright: 知识共享署名 非商业性使用 相同方式共享 4.0 国际许可协议
|
CC BY-NC-SA 4.0
本文,我们将创建一个含有int add(int a, int b);
方法的静态库,并用自己写的代码调用它。
创建静态库
新建文件add.h
:
1 | int add(int a, int b); |
add.h
对函数进行了声明。
此文件是必须的,因为其他代码调用它时,在代码编译时需要add这个”函数的声明”。
新建文件add.c
:
1 |
|
这个文件对add.h
中的函数进行了具体实现。
编译add.c
:
1 | gcc -c add.c -o add.o |
用ar
工具将目标文件打包成静态库文件libadd.a
(名字必须以lib
开头,且后缀必须为.a
)。ar
工具是用于创建静态库的工具:
1 | ar rcs libadd.a add.o |
使用静态库
写一个简单的main.c
来调用静态库libadd.a
:
1 |
|
编译main.c
:
1 | gcc -I lib main.c -L lib -l add -o main |
生成的可执行文件main包含了libadd.a
的内容。
执行main
:
1 | ./main |
可以看到执行结果为1。
之前写的博客Cmake add_subdirectory() 使用其实也是将每个子目录构建成了一个静态库,最终去链接这些库,也因此实现了模块化、并行构建、不重复构建的好处。