我们平时用c++写代码,用的iostream、各种STL容器所对应的实现都在这个库当中,指令ls /lib64/libstdc*,查看系统中c++库。不管是类还是方法,他都要有头文件,指令vim /usr/include/stdio.h,查看stdio.h,可以看到里面有prinrf等声明。
头文件提供了方法的声明,但实现的时候是要在库中去实现的。系统已经装了C/C++,头文件提供方法说明,库提供方法的实现,头和库是有对应关系的,是要组合一起使用的,虽然文件和库文件没有在同一个目录下,但并不代表他们两个不能起作用,好比你在北京上学,你朋友在海南上学,并不代表你们两个不能合作做一件事情。
一份源代码要经过预处理、编译、汇编、链接变成可执行程序,头文件是在预处理阶段就引入的,预处理阶段是把头文件按照条件编译的方式拷贝到你的可执行程序里。链接的本质是链接库,库是二进制,你的可执行程序是二进制,文本可以从A文件拷贝到B文件,二进制库拷贝到我们的程序,从而产生关联,这个事情也可以做到,经过这样的概念,最终就形成了我们的可执行,就把语言用起来了,库用起来了。