静态库其实可以理解为二进制的.cpp文件,我们在调用静态库的时候只需要把静态库看成一个cpp压缩包就行了。
那正常程序我们要怎么运行呢?
程序执行步骤:预编译 - 编译 - 汇编 - 链接 -执行
首先我们需要预编译#include<头文件.h>,让程序知道代码里那些函数,好让它在编译的时候识别的到。
所以我们需要先将静态库里我们用到的头文件都包含进来,好让#include<头文件.h>能够找到头文件(通常是lib文件目录里的include文件夹)
那我的程序要怎么找到不在同一个路径下的lib的头文件呢?
有两种方案
1、#include<绝对路径/头文件.h> 通过绝对路径直接定位到头文件,程序就不需要找了
2、在编译的时候去找包含目录里的头文件。那么我们就需要给这个程序设置附加包含路径了
右键项目-属性-C/C++-常规-附加包含目录
第二步:程序找到头文件,正确通过了编译和汇编后,生成了二进制的.obj文件。那这时候机器能够看懂你的代码了,代码里要求要执行Lib库里的某某函数。那这时候程序进入链接阶段,需要识别到lib库的代码了

如果在普通程序,我们程序运行是需要找到cpp文件的。因为我们通常会把main和其他cpp文件放在同一个目录底下,所以程序运行时我们能直接找到并加载这个cpp文件
但是lib文件它不在我们的路径底下,那我们就需要像上面找头文件一样,先找到lib库的路径,再找到Lib库
先添加附加库目录,把Lib库的路径填上去
再填上Lib库的名字(或者你直接把库的绝对路径/xxx.lib直接写到这个依赖项也行,就不需要上面附加库目录了)
现在,你的程序能够正确链接Lib库并获取到里面包含的函数,你的程序可以正常运行了!




被折叠的 条评论
为什么被折叠?



