Visual Studio | 配置管理

文章目录

  • 一、配置管理
    • 1、项目属性
      • 1.1、常规
      • 1.2、VC++ 目录
      • 1.3、C/C++ -> 常规
      • 1.4、C/C++ -> 预处理器
      • 1.5、C/C++ -> 预编译头
      • 1.6、连接器 -> 常规
      • 1.7、连接器 -> 输入
    • 2、编辑
      • 2.1、显示空格或tab符

一、配置管理

1、项目属性

1.1、常规

字段功能
目标平台版本用于生成项目的Windows SDK(软件开发工具包)的版本
输出目录存放最终编译产物的位置,输出目录通常位于解决方案目录下的Debug或Release文件夹中,具体取决于当前的编译配置(Debug或Release)
中间目录存放编译过程中生成的中间文件的位置,这些文件包括目标文件(.obj)、预编译头文件(.pch)等
目标文件名指定生成的目标文件的名称。默认使用的是项目名称
目标扩展名指定生成的目标文件的扩展名,这取决于项目类型(如.exe、.dll等)
平台工具集指定编译和链接项目时所使用的编译器和工具版本
配置类型编译项目时将生成什么类型的输出文件。常见的配置类型主要包括动态链接库(.dll)和可执行文件(.exe)
字符集设置项目使用的字符集,常见的选择有使用Unicode字符集或多字节字符集

1.2、VC++ 目录

字段功能
可执行文件目录指定VS在搜索可执行文件(如编译器、链接器等)时要查找的目录
包含目录指定VS在搜索源代码中引用的包含(头文件)文件时要查找的目录
库目录指定VS在搜索库文件(.lib)时要查找的目录
源目录指定VS在搜索源文件时要查找的目录。这些源文件将被编译成对象代码,并最终链接成可执行文件。(在某些版本的VS中可能不存在或名称略有不同)
引用目录指定VS在搜索引用的程序集、模块或元数据文件时要查找的目录。这些文件通常通过#using指令在源代码中引用。(在某些版本的VS中可能不直接以该名称出现,但功能类似)
排除目录指定在生成依赖项时不需要搜索的目录。这有助于减少构建时间,并避免在不需要的目录中查找文件

1.3、C/C++ -> 常规

字段功能
附加包含目录用于指定编译器搜索头文件(.h或.hpp等)的附加目录。这些目录中的头文件将被编译器包含(include)到源代码中,以便进行编译。可以通过添加多个目录来扩展编译器的搜索路径

1.4、C/C++ -> 预处理器

字段功能
预处理器定义它允许开发人员为项目定义宏,这些宏在预处理阶段会被识别和处理

1.5、C/C++ -> 预编译头

字段功能
预编译头用于选择是否使用预编译头,以及如何使用它们。常见的选项包括:不使用预编译头、使用(/Yu)、创建(/Yc)
预编译头文件指定预编译头文件的名称。在Visual Studio中,默认情况下,这个名称是“stdafx.h”。当选择“创建(/Yc)”选项时,编译器会编译这个头文件,并生成对应的预编译头文件(通常是项目名.pch)
预编译头输出文件生成的预编译头文件(*.pch)存放位置

1.6、连接器 -> 常规

字段功能
附加库目录指定链接器在链接过程中搜索库文件(.lib文件)的附加目录

1.7、连接器 -> 输入

字段功能
附加依赖项指定链接器在链接过程中需要链接的外部库文件(.lib文件)的名称
  • 问题一:“C/C++” -> “附加包含目录” 与 “VC++目录” -> “包含目录”的区别

这两个字段都用于指定编译器在编译C/C++源代码时查找头文件的路径。然而,它们之间存在一些关键的区别:

  • 作用范围

    • “附加包含目录”:这是一个项目级的设置,特定于当前项目。它允许你为当前项目指定额外的头文件搜索路径。
    • “VC++目录”下的“包含目录”:这是一个全局性的设置,适用于所有使用相同VS解决方案或项目的环境。它定义的路径将被所有项目共享(除非在项目级别进行了覆盖)。
  • 优先级

    • 在搜索头文件的顺序上,“附加包含目录”通常具有更高的优先级。这意味着编译器会首先在这些目录中查找头文件,如果找不到,才会去“VC++目录”下的“包含目录”中查找。
  • 配置方式

    • “附加包含目录”:你可以通过输入相对路径(相对于项目目录)或绝对路径来添加额外的头文件搜索路径。
    • “VC++目录”下的“包含目录”:你可以为不同的配置(如调试、发布)设置不同的目录路径,这些路径将全局应用于所有项目。
  • 使用场景

    • “附加包含目录”:当你需要在当前项目中包含位于特定目录的头文件时,可以使用此字段。这对于包含第三方库或自定义头文件非常有用。
    • “VC++目录”下的“包含目录”:当你希望为所有项目或解决方案设置统一的头文件搜索路径时,可以使用此字段。这有助于确保所有项目都能找到必要的头文件,特别是在大型解决方案中。

综上所述,“C/C++”->“附加包含目录”与“VC++目录”->“包含目录”在Visual Studio中均用于指定头文件搜索路径,但前者是项目级设置,后者可以是全局性或解决方案级设置。根据项目需求和配置要求,可以选择合适的设置来确保编译器能够正确找到所需的头文件。

  • 问题二:“连接器” -> “常规” -> “附加库目录” 与 “VC++ 目录” -> “库目录”间的区别

两个字段的详细区别如下:

作用范围不同

  • 附加库目录

    • 这个字段专门用于指定链接器在链接阶段搜索库文件(.lib文件)的附加目录。
    • 它仅影响链接过程,对编译过程没有直接影响。
    • 链接器在链接生成可执行文件或库时,会在这个字段指定的目录中搜索所需的库文件。
  • VC++ 目录 -> 库目录

    • 这个字段用于定义Visual Studio在查找库文件时使用的目录,包括在编译和链接阶段。
    • 它不仅影响链接过程,还可能影响编译过程(尽管编译过程主要关心的是头文件)。
    • 编译器和链接器在需要查找库文件时,都会在这个字段指定的目录中搜索。

全局性与项目性

  • 附加库目录

    • 这个字段的设置是项目级的,即它仅对当前项目有效。
    • 如果你有多个项目,并且它们需要使用不同的库目录,你可以为每个项目分别设置附加库目录。
  • VC++ 目录 -> 库目录

    • 这个字段的设置可以是全局性的,也可以是项目级的,具体取决于你的设置方式。
    • 如果你在“VC++ 目录”中设置了库目录,并且这个设置被应用到了多个项目或解决方案中,那么这些项目或解决方案都会使用相同的库目录。
    • 然而,你也可以通过项目属性页为每个项目单独设置库目录,从而使其具有项目级的有效性。

使用场景

  • 附加库目录

    • 当你需要为当前项目指定额外的库目录时,可以使用附加库目录字段。
    • 这对于管理项目依赖的外部库特别有用,尤其是当这些库位于非标准路径时。
  • VC++ 目录 -> 库目录

    • 当你希望为整个解决方案或一组项目指定统一的库目录时,可以使用VC++ 目录中的库目录字段。
    • 这有助于确保所有相关项目都使用相同的库文件,从而避免版本不一致或路径错误等问题。

正确理解和使用这两个字段有助于更好地管理项目依赖的库文件,并确保项目的顺利编译和链接。

  • 问题三:“连接器” -> “输入” -> “附加依赖项” 与“连接器” -> “常规” -> “附加库目录” 的区别

它们之间的主要区别,如下:

  • 附加依赖项:

    • 该字段用于指定链接器在链接阶段需要链接的外部库文件(.lib文件)的名称。这些名称不需要包含文件路径和文件扩展名(.lib)。
    • 链接器会根据这些名称在指定的库目录中搜索相应的.lib文件,并将其链接到最终的可执行文件或库中。
  • 附加库目录:

    • 该字段用于指定链接器在搜索外部库文件(.lib文件)时应该查找的目录。
    • 这些目录是链接器在尝试找到并链接附加依赖项中指定的.lib文件时所使用的搜索路径。

2、编辑

2.1、显示空格或tab符

效果如下,显示出空格或tab符

在这里插入图片描述

  • 方法一:【工具】->【选项】->【文本编辑器】->【所有语言】->【制表符】

    在这里插入图片描述

  • 方法二:使用快捷键, 按下Ctrl+R, 然后按Ctrl+W

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/906446.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据采集-Kepware 安装证书异常处理

这里写目录标题 一、 问题描述二、原因分析三、处理方案3.1 1.执行根证书的更新3.2 安装KepServerEx 资源 一、 问题描述 在进行KepServerEx进行安装的情况下,出现了如下的报错: The installer was unable to find required root certificates ,please …

递归到分治

一、递归与分治: 1、递归:如果一个问题分可以简化为某些更小的、更简单的子问题来解决,那么可以用递归 2、分治:如果想并行处理,可以用到分治 二、假设我们有一段文本,需要统计每个单词出现的频率。我们将…

什么是护网(HVV)需要什么技术?(内附护网超全资料包)

文章目录 一、什么是护网行动?二、护网分类三、护网的时间四、护网的影响五、护网的规则六、什么是红队? 6.1、红队测试的意义 七、什么是蓝队 一、什么是护网行动? 护网行动是以公安部牵头的,用以评估企事业单位的网络安全的…

Chromium127编译指南 Linux篇 - 同步第三方库以及Hooks(六)

引言 在成功克隆 Chromium 源代码仓库并建立新分支之后,配置开发环境成为至关重要的下一步。这一过程涉及获取必要的第三方依赖库以及设置钩子(hooks),这些步骤对于确保后续的编译和开发工作能够顺利进行起着决定性作用。本指南旨…

部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio

1. 模块简介 Prometheus 是一个开源的监控系统和时间序列数据库。Istio 使用 Prometheus 来记录指标,跟踪 Istio 和网格中的应用程序的健康状况。Grafana 是一个用于分析和监控的开放平台。Grafana 可以连接到各种数据源,并使用图形、表格、热图等将数据…

Python+Appium+Pytest+Allure自动化测试框架-安装篇

文章目录 安装安装ADT安装NodeJs安装python安装appium安装Appium Server(可选)安装Appium-Inspector(可选)安装allure安装pytest PythonAppiumPytestAllure框架的安装 Appium是一个开源工具,是跨平台的,用于…

深入解析缓存模式下的数据一致性问题

今天,我们来聊聊常见的缓存模式和数据一致性问题。 常见的缓存模式有:Cache Aside、Read Through、Write Through、Write Back、Refresh Ahead、Singleflight。 缓存模式 Cache Aside 在 Cache Aside 模式中,是把缓存当做一个独立的数据源…

tensorflow案例4--人脸识别(损失函数选取,调用VGG16模型以及改进写法)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 这个模型结构算上之前的pytorch版本的,算是花了不少时间,但是效果一直没有达到理想情况,主要是验证集和训练集准确率…

系统架构图设计(行业领域架构)

物联网 感知层:主要功能是感知和收集信息。感知层通过各种传感器、RFID标签等设备来识别物体、采集信息,并对这些信息进行初步处理。这一层的作用是实现对物理世界的感知和初步处理,为上层提供数据基础网络层:网络层负责处理和传输…

PySpark 本地开发环境搭建与实践

目录 一、PySpark 本地开发环境搭建 (一)Windows 本地 JDK 和 Hadoop 的安装 (二)Windows 安装 Anaconda (三)Anaconda 中安装 PySpark (四)Pycharm 中创建工程 二、编写代码 …

基于Python的自然语言处理系列(51):Weight Quantization

浮点数表示简介 浮点数的设计允许表示范围广泛的数值,同时保持一定的精度。浮点数表示的基本公式为: 在深度学习中,常见的浮点数格式有:float32(FP32)、float16(FP16)和bfloat16(BF16)。每种格式的具体特性如下: 格式总位数符号位指数位数尾数位数精度计算成…

c++:vector模拟实现

一、vector成员变量 库里实现用的就是这三个成员变量&#xff0c;咱们实现跟库里一样&#xff0c; namespace myvector {template<class T>class vector{public://vecttor的迭代器是原生指针typedef T* iterator;typedef const T* const_iterator; private:iterator _sta…

【Linux系列】Linux 和 Unix 系统中的`set`命令与错误处理

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

抗疫物资管理:SpringBoot技术应用案例

目 录 摘 要 1 前 言 2 第1章 概述 2 1.1 研究背景 3 1.2 研究目的 3 1.3 研究内容 4 第二章 开发技术介绍 5 2.1相关技术 5 2.2 Java技术 6 2.3 MySQL数据库 6 2.4 Tomcat介绍 7 2.5 Spring Boot框架 8 第三章 系统分析 9 3.1 可行性分析 9 3.1.1 技术可行性 9 3.1.2 经济可行…

机器学习实战(一)机器学习基础

"我不断地告诉大家&#xff0c;未来十年最热门的职业是统计学家。很多人认为我是开玩笑&#xff0c; 谁又能想到计算机工程师会是20世纪90年代最诱人的职业呢&#xff1f;如何解释数据、处理数据、从中抽取价值、展示和交流数据结果&#xff0c;在未来十年将是最重要的职业…

树叶分类竞赛(Baseline)以及kaggle的GPU使用

树叶分类竞赛(Baseline)-kaggle的GPU使用 文章目录 树叶分类竞赛(Baseline)-kaggle的GPU使用竞赛的步骤代码实现创建自定义dataset定义data_loader模型定义超参数训练模型预测和保存结果 kaggle使用 竞赛的步骤 本文来自于Neko Kiku提供的Baseline&#xff0c;感谢大佬提供代码…

奥数与C++小学四年级(第十一题 试商)

参考程序代码&#xff1a; #include <iostream> using namespace std; int main() { int dividend 2023; int count 0; // 余数从0开始遍历到被除数 for (int remainder 0; remainder < dividend; remainder) { int divisor remainder 2; // 计算商 if…

GPT-Sovits-2-微调模型

1. 大致步骤 上一步整理完数据集后&#xff0c;此步输入数据, 微调2个模型VITS和GPT&#xff0c;位置在 <<1-GPT-SoVITS-tts>>下的<<1B-微调训练>> 页面的两个按钮分别执行两个文件: <./GPT_SoVITS/s2_train.py> 这一步微调VITS的预训练模型…

关于前端程序员使用Idea快捷键配置的说明

相信很多前端程序员 转到后端第一件事就是安装Idea然后学习java&#xff0c;在这里面最难的不是java的语法&#xff0c;而是关于快捷键的修改&#xff0c;前端程序员用的最多的估计就是VsCode或者Webstorm&#xff0c;就拿我自己举例我经常使用Vscode&#xff0c;当我写完代码下…

ubuntu运行gazebo导致内存越来越少

1.用vscode看代码会一直有没用的日志缓存&#xff0c;可以删掉&#xff08;文件夹留着&#xff0c;可以把里面的东西删掉&#xff09; 2.运行gazebo的模型会有很多缓存文件&#xff0c;可以删掉 log文件夹非常大