c++的编译器,在预处理的时候,根据头文件名字在默认的include所在路径的中查找匹配的头文件,如果存在这个文件,则编译器在根据这个头文件里面的函数声明对比,确定源代码中所使用的函数有效性,如果有效,则编译器根据该头文件自啊默认的librarypath中查找对应的库,(一般的库文件都是规律的以lib+部分头文件名表示,)找到之后,将对应的函数定义,加入到源代码中,完成预处理操作。
这一点在linux下的g++ 体现的很明显
在linux下 执行 g++ -v就能看到基本路径的默认配置了
不过静态库和动态库是不一样的,上面那种状态只是适合静态库,
动态库的话,并不会将函数完整加入到源代码中,而是以接口的方式存在,在运行时候,自动调用动态库中的函数。
这个是我个人的理解 呵呵 在平时接触到的程序基本就是这样的模式