我们先看一下.C和.Cpp文件如何变成可执行文件的:
静态库 动态库
在windows下命名 .lib .dll .DLL
在linux下命名 libxxx,a libxxx.so
使用时机 链接过程 运行过程
静态函数库在生成.o文件的时候,整个函数库的所有的数据都会整合进.o文件中,它就是.o文件的集合(是个半成品,如果有一辆自行车的话,那么静态函数库就是组成轮胎的一些零件,比如外胎,内胎,支架),通过链接就可以把这些零件(.o文件)组成轮胎了,如果你改变了一个函数库里的其中一个函数,那就是相当换了一个零件,要重新把这些零件组起来,才能再次正确组成轮胎。
动态函数库是通过gcc生成不可单独执行的可执行文件,什么是不可单独执行呢?就是它的库函数里是没有主函数的,在链接过程中,内存记住了一个相当于链接地址(是个零件的成品,已经是个轮胎了,等需要用的时候只要知道它放在哪就好了)。
linux存放相应的函数库: /lib /usr
生成: gcc -c *.c(函数功能文件,不包括主函数)