• VS中包含目录、附加包含目录、库目录、附加库目录及附加依赖项的继承关系


     ——系统属性表(X64和win32之间各自独立,无继承关系)

    问题:

    1. 在visual studio中配置第三方代码库时涉及到包含目录、附加包含目录和库目录,那么Include Directories和Additional Include Directories,以及Library Directories和Additional Library Directories作用是什么?
    2. 系统属性表的包含目录、附加包含目录与项目的包含目录附加包含目录又怎样的继承关系?如何设置呢?

    VS中C++的包含目录、附加包含目录和库目录以及附加库目录:

    • 作用

                  包含目录、附加包含目录:寻找代码中头文件所在的搜索目录,目录不是头文件。

                  库目录、附加库目录寻找.lib文件的搜索目录

                  附加依赖项:lib库(C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译后,*.cpp,*.cc,*.c会被打                                       包成一个.lib文件,这样可以保护源代码) 

    • 区别

    MSDN上的解释如下:

    The compiler searches for directories in the following order:

    1. Directories containing the source file.
    2. Directories specified with the Additional Include Directories.
    3. Directories specified in the INCLUDE environment variable.


    首先:从这里看出,附加二字仅仅对编译过程中头文件的搜索链接顺序有影响,其他方面与包含xx无任何影响!

    1、系统属性表中的继承关系:

    特点:

    • 全局性,对所有项目都会产生继承。
    • debug设置和release设置都会互相继承

     

    2、项目属性表中的继承关系:

    特点:

    • 局部性,只对本项目负责,对系统属性没有影响。
    • debug设置和release设置不会互相继承。

    因此,总结出两种设置方法:

    第一种:只在 包含目录 设置头文件包含,且只在 库目录 设置库文件路径,然后 附加依赖库 指明库名lib

    第二种:只在 附加包含目录 设置头文件包含,且只在 附加库目录 设置库文件路径,然后 附加依赖库 指明库名lib。但是为提高编译时的搜索效率,需要确保在包含目录填入$(IncludePath),继承VS自身的一些基本头文件。

                               

    注:

    1、附加库目录+附加依赖项共同构成了lib依赖库的完整路径

    2、当需要向项目中添加.dll动态链接库时,

    • 方法一:设置dll的环境变量
    • 方法二:拷贝dll至exe执行目录.(exe生成目录位置:项目->属性->配置属性->常规->输出目录)。
  • 相关阅读:
    dynamic和匿名对象
    生成1亿个不重复的8位随机整数
    Storage,Memcache,KVDB都是存储服务,如何区分何时用何种服务
    深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法
    常用工具
    数字格式化,保留一位小数,无小数用0补充
    学习某些API的方法
    程序员的学习方法(程序员必看)【风中叶老师讲述】
    html的dtd声明
    数据库管理工具navicat基本使用方法——以MySql为例
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725225.html
Copyright © 2020-2023  润新知