• Visual Studio C++工程——包含目录、库目录、附加依赖项、附加包含目录、附加库目录配置与静态库、动态库的调用



    利用Visual Studio编写C++工程文件时,时常需要自行配置自己编写的头文件、外部引用的静态链接库和动态链接库的路径,这时候需要在项目属性中进行配置。本文主要介绍包含目录、库目录、附加依赖项、附加包含目录、附加库目录配置与静态库、动态库的调用。

    (一)包含目录、附加包含目录

    1、用途

    包含目录(Include Directories)
    附加包含目录(Additional Include Directories)

    编译器搜索头文件顺序:1.如果#include使用双引号(“”)形式,它将首先搜索本地目录。现从包含#include语句的当前文件的所在目录开始搜索。若果失败,则从当前目录的父目并逐级往上搜索,直到最上层include文件所在的目录。2.如果#include使用尖括号(<>)形式,或者使用双引号形式本地目录检索失败,它会按照/I选项(附加包含目录)指定的目录搜索。顺序是按照CL在命令行中遇到它们的顺序。3.INCLUDE环境变量指定的目录,即包含目录。所以,对本项目自身的#include一定要用双引号,否则如果用尖括号,不会搜索本地目录,而是直接从附加包含目录开始搜索,自然就找不到本地的文件,然后报错。

    • 作用:预编译会从该目录查找头文件,可以直接#include<该目录中的头文件>
    • 区别:头目录搜索的优先级不同,顺序:1、源文件目录–>2、附加包含目录–>3、包含目录

    2、设置路径

    包含目录(Include Directories)

    VC++目录 —>包含目录

    附加包含目录(Additional Include Directories)

    位于:配置属性 → C/C++ → 常规 如果项目属性中没有“C/C++”这一项,写个简单的main.cpp编译一下,就会出现。

    (二)库目录、附加库目录

    1、用途

    库目录(Library Directories)
    附加库目录(Additional Library Directories)

    • 作用:指明库文件所在的目录or路径,即寻找.lib文件的搜索目录
    • 区别:优先级不同,先检索附加库目录,再检索库目录

    2、设置路径

    库目录(Library Directories)

    位于:工程—属性—配置属性—VC++目录—库目录

    附加库目录(Additional Library Directories)

    位于:工程—属性—配置属性—链接器—常规—附加库目录

    (三)附加依赖项

    1、用途

    附加依赖项(Additional Dependencies)

    • 作用:指明依赖库文件的名称

    2、设置路径

    位于:配置属性 → 连接器 → 输入

    (四)静态链接库调用方法

    (1) 要使用一个静态库,除了要include其头文件以外(附加包含目录),还要在链接过程中把lib加进去(附加库目录、附加依赖项)。
    (2)附加包含目录、附加库目录、附加依赖项的添加方法及说明:
    ① 附加包含目录—添加工程的头文件目录:
    项目->属性->配置属性->C/C+±>常规->附加包含目录:加上头文件的存放目录;
    ② 附加库目录—添加文件引用的lib静态库路径:
    项目->属性->配置属性->链接器->常规->附加库目录:加上lib文件的存放目录;
    ③ 附加依赖项—添加工程引用的lib文件名:
    项目->属性->配置属性->链接器->输入->附加依赖项:加上lib文件名。

    (五)动态链接库的调用方法

    在这里插入图片描述
    (1)包含静态链接库的操作
    ① 附加包含目录—添加工程的头文件目录:
    项目->属性->配置属性->C/C+±>常规->附加包含目录:加上头文件的存放目录;
    ② 附加库目录—添加文件引用的lib静态库路径:
    项目->属性->配置属性->链接器->常规->附加库目录:加上lib文件的存放目录;
    ③ 附加依赖项—添加工程引用的lib文件名:
    项目->属性->配置属性->链接器->输入->附加依赖项:加上lib文件名。
    (2)当需要向项目中添加.dll动态链接库时,直接将需要添加的.dll文件拖拽到项目生成的.exe所在的文件夹下即可(项目->属性->配置属性->常规->输出目录,可以看到.exe生成在哪个目录下)。

  • 相关阅读:
    算法通关村第17关【白银】| 贪心高频问题
    MySQL数据库(三)日志、主从复制、分库分表、读写分离
    Spring中Bean的生命周期详解
    基于SpringBoot的合家云社区物业管理平台 - 登录模块开发
    2024-5-9-从0到1手写配置中心Config之@ConfigurationProperties热更新
    怎么把自己写的组件发布到npm官方仓库??
    【实习】解决请求参数过长问题
    SAP中由删除合同项目导致的价格条件无法修改问题
    docker配置nginx
    关于httpsrepo.maven.apache.orgmaven2报错 ERROR
  • 原文地址:https://blog.csdn.net/zeye5731/article/details/125898439