在Visual Studio中使用.lib和.dll的环境搭建

1 静态库和动态链接库的区别

动态链接库是在运行的时候被调用的,静态库在链接的时候被链接到最终生成的应用程序(.exe)中
静态库需要用到的文件 (.lib .h)
头文件(.h)提供接口,库文件(.lib)提供实现

动态链接库需要用到的文件 (.dll .lib .h)
头文件(.h)提供接口,库文件(.lib)仅提供索引,动态链接库文件(.dll)提供实现

2 尖括号<>和双引号""引用.h文件的区别

尖括号<>会从VC++包含目录中寻找.h文件,一般是用于调用第三方库

双引号""会从项目配置属性中c/c++的附加包含目录寻找.h文件,一般是用于寻找工程内的.h文件

目录

  • 一. 静态库环境配置
    • 1.1 添加静态库对应的头文件所在目录
      • 1.1.1 使用尖括号<>引用头文件的配置
      • 1.1.2 使用双引号引用头文件的配置
    • 1.2 添加静态库所在目录
    • 1.3 添加附加依赖项
    • 1.4 测试以及常见错误
  • 二. 动态链接库环境配置
    • 2.1 设置.dll的环境

Visual Studio项目环境配置

一. 静态库环境配置

1.1 添加静态库对应的头文件所在目录

1.1.1 使用尖括号<>引用头文件的配置
右键项目->属性->配置属性->VC++目录

在Visual Studio中使用.lib和.dll的环境搭建_第1张图片
点击包含目录,点击右边的下拉箭头,点击编辑,添加新的项,手动输入附加库头文件的路径

在这里插入图片描述在Visual Studio中使用.lib和.dll的环境搭建_第2张图片在Visual Studio中使用.lib和.dll的环境搭建_第3张图片
点击确定保存,这样就能保证我们能用<>引用我们想要使用的库的头文件了

1.1.2 使用双引号引用头文件的配置
要使用双引号""引用项目中的头文件的话,在配置属性->c/c++->附加包含目录中添加头文件所在路径即可

在Visual Studio中使用.lib和.dll的环境搭建_第4张图片
在Visual Studio中使用.lib和.dll的环境搭建_第5张图片
确定,完成配置

1.2 添加静态库所在目录

和添加包含目录同理,点击库目录,点击右边的下拉箭头,编辑,添加静态库所在目录

编辑库目录在Visual Studio中使用.lib和.dll的环境搭建_第6张图片
也可以在配置属性->链接器->常规->附加库目录中添加库所在路径

在Visual Studio中使用.lib和.dll的环境搭建_第7张图片

1.3 添加附加依赖项

右键项目->属性->配置属性->链接器->附加依赖项->编辑

添加依赖的lib文件名

在Visual Studio中使用.lib和.dll的环境搭建_第8张图片

在Visual Studio中使用.lib和.dll的环境搭建_第9张图片
到此位置lib的配置就结束了

1.4 测试以及常见错误

  1. 试着引用一下glfw库,没有出现红线说明我们的头文件包含目录没问题了
    在这里插入图片描述
  2. 跑一下程序,如果出现LNK1104,说明库目录出了问题
    在这里插入图片描述
  3. 出现LNK2019 无法解析的外部符号XXXXX,该符号在函数XXX被引用
    在这里插入图片描述
    这种情况就是没有添加附加依赖项导致的
    总结一下配置静态库可能会出现的问题
  • 预处理错误,未找到头文件
    解决方式:在VC++目录或者c/c++的附加目录中添加头文件所在目录

  • 链接错误,LNK1104,无法找到库文件
    解决方式:在VC++目录或者链接器的附加库目录添加库所在的目录

  • 链接错误,LNK1120,LNK2019, 无法解析的外部符号
    解决方式:在链接器中添加附加依赖项

二. 动态链接库环境配置

动态链接库可以在运行时被使用,调用动态库需要用到 .dll .lib .h三个文件,**其中.lib和.h文件的配置方式和静态库一样**,就不重新说一次了

2.1 设置.dll的环境

关键的一步是在项目的调试环境中添加.dll文件所在路径 右键项目->配置属性->调试->环境->编辑

在Visual Studio中使用.lib和.dll的环境搭建_第10张图片
输入PATH=附加库的路径1;附加库的路径2;附加库的路径3;…
每个路径用分号隔开
在Visual Studio中使用.lib和.dll的环境搭建_第11张图片
点击确定,保存

梳理一下动态链接库环境配置的流程

  1. 添加头文件(.h)所在路径到VC++的包含目录或者项目配置属性c/c++的附加包含目录中
  2. 添加静态库(.lib)所在路径到VC++库目录或者链接器的附加库目录中
  3. 添加附加依赖项到链接器的附加依赖项中
  4. 添加动态链接库(.dll)所在路径到项目调试环境中

你可能感兴趣的:(在Visual Studio中使用.lib和.dll的环境搭建)