记录一个自己生成库文件的过程(虽然简单,但很激动)
库文件,在今晚之前,它应该是一个很神秘很阔大的词汇:
一个库
但今晚,我对这个庞然大物不再恐惧,因为我看到,它不过也是无数个简单事物的集合罢了,而我,也是一个由几亿个细胞组成的。我们都一样。
所谓printf函数,我们之所以随便就可以使用,正是因为,它在我们使用的stdio .h 头文件中含有对printf函数的定义。
我的过程:
先写连个c文件,一个叫做myproc1.c,另一个叫做myproc2.c。
myproc1.c里写了:
#include<stdio.h>
void func(){
printf("i don't have a girlfriend\n");
}
myproc2.c里写了:
#include<stdio.h>
void func2(){
printf("i want you");
}
显然,都是很简单的函数。
再接着,我写了一个libcmain.c:
int main(){
func();
func2();
}
简单的不能再简单了。
然后,将三个都编译为.o文件。
- libcmain.o
- myproc1.o
- myproc2.o
将后两个归档为一个库:
ar rcs mylibc.a myproc1.o myproc2.o
生成我的库文件:mylibc.a
接着,对libcmain.c进行编译生成libcmain.o
最后,静态连接生成可执行文件:
gcc -static -o libcmain libcmain.o ./mylibc.a
生成了可执行文件:
很有趣的一个晚上。