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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker打包自己项目推到Docker hub仓库(windows10)

一、启用Hyper-V和容器特性 1.应用和功能 2.点击程序和功能 3.启用或关闭Windows功能 4.开启Hyper-V 和 容器特性 记得重启生效!!! 二、安装WSL2:写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/143057041 三…

js.轮转数组和旋转链表

这是两个相似的题型,一个是数组,另一个是链表。 链接:189. 轮转数组 - 力扣(LeetCode) 题目: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1:…

mysql left join group_concat 主表丢失数据

问题出现的场景: 有一个主表 a,一个子表 b a表有两条数据,a表第一条数据在b表中有一条子数据,a表第二条数据在b表中有两条子数据。 现在想要查询出来a表的所有数据和a表的子表b的id,b的id 使用GROUP_CONCAT拼接 有…

Spring 中循环依赖 三级缓存

在Spring框架中,循环依赖是一个常见的问题,它指的是两个或多个Bean之间互相依赖,形成一个闭环,导致无法准确地完成对象的创建和初始化。为了解决这个问题,Spring引入了三级缓存机制。以下是对Spring中循环依赖和三级缓…

新能源汽车与公共充电桩布局

近年来,全球范围内对新能源汽车产业的推动力度不断增强,中国新能源汽车市场也呈现蓬勃发展的势头,在政策与市场的共同推动下,新能源汽车销量持续增长。然而,据中国充电联盟数据显示,充电基础设施建设滞后于新能源汽车数量增长的现状导致充电桩供需不平衡,公共充电桩服务空白区域…

【深度学习基础】常用图像卷积核类型

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀深度学习_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. 常…

一二三应用开发平台自定义查询设计与实现系列3——通用化重构

通用化重构 前面我们以一个实体为目标对象,完成了功能开发与调试。 在此基础上,我们对功能进行重构,使其成为平台的标准化、通用化的功能。 前端重构 首先,先把自定义组件挪到了平台公共组件目录下,如下&#xff1…

RabbitMQ交换机类型

RabbitMQ交换机类型 1、RabbitMQ工作模型2、RabbitMQ交换机类型2.1、Fanout Exchange(扇形)2.1.1、介绍2.1.2、示例2.1.2.1、生产者2.1.2.2、消费者2.1.2.3、测试 2.2、Direct Exchange(直连)2.2.1、介绍2.2.2、示例2.2.2.1、生产…

qt QMenuBar详解

1、概述 QMenuBar是Qt框架中用于创建菜单栏的类,它继承自QWidget。QMenuBar通常位于QMainWindow对象的标题栏下方,用于组织和管理多个QMenu(菜单)和QAction(动作)。菜单栏提供了一个水平排列的容器&#x…

数据转换 | Matlab基于SP符号递归图(Symbolic recurrence plots)一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式 基本介绍 Matlab基于SP符号递归图(Symbolic recurrence plots)一维数据转二维图像方法 符号递归图(Symbolic recurrence plots)是一种一维时间序列转图像的技术,可用于平稳和非平稳数据集;对噪声具有…

特殊矩阵的压缩存储

一维数组的存储结构 ElemType arr[10]; 各数组元素大小相同,且物理上连续存放。 数组元素a[i]的存放地址 LOC i * sizeof(ElemType)。(LOC为起始地址) 二维数组的存储结构 ElemType b[2][4];二维数组也具有随机存取的特性(需…

MySQL utf8mb3 和 utf8mb4引发的问题

问题描述 Cause: java.sql.SQLException: Incorrect string value: \xF4\x8F\xBB\xBF-b... for column sddd_aaa_ark at row 1 sddd_aaa_ark 存储中文字符时,出现上述问题 原因分析 sddd_aaa_ark在数据库中结构是 utf8字符的最大字节数是3 byte,但是某些…

RK3568开发板Openwrt文件系统构建

RK3568开发板Openwrt文件系统构建 iTOP-RK3568开发板使用教程更新,后续资料会不断更新,不断完善,帮助用户快速入门,大大提升研发速度。 本次更新内容为《iTOP-3568开发板文件系统构建手册》,对Openwrt文件系统的编译…

Linux之crontab使用

一,查看cron是否已经在运行 查看crontab的运行状态 sudo service cron statussystemctl status cron 开启crontab: sudo service cron startsudo service cron restart 二,编辑cron定时任务 crontab -e加入你自己的命令,定时跑脚本&a…

OpenEuler 使用ffmpeg x11grab捕获屏幕流,rtsp推流,并用vlc播放

环境准备 安装x11grab(用于捕获屏幕流)和libx264(用于编码) # 基础开发环境&x11grab sudo dnf install -y \autoconf \automake \bzip2 \bzip2-devel \cmake \freetype-devel \gcc \gcc-c \git \libtool \make \mercurial \pkgconfig \zlib-devel \libX11-devel \libXext…

矩阵的奇异值分解SVD

为了论述矩阵的奇异值与奇异值分解!需要下面的结论!

H5开发指南|掌握核心技术,玩转私域营销利器

随着互联网技术的不断发展和用户需求的日益增长,H5页面逐渐成为了企业和个人展示信息、吸引用户关注的重要手段。具有跨平台兼容性强、网页链接分享、更新迭代方便快捷、低开发成本、可搜索和优化、数据分析与追踪、灵活性与扩展性以及无需下载安装等特点。不仅可以…

Ubuntu Linux

背景 Ubuntu起源于南非,其名称“Ubuntu”来源于非洲南部祖鲁语或豪萨语,意为“人性”、“我的存在是因为大家的存在”,这体现了非洲传统的一种价值观。Ubuntu由南非计算机科学家马克沙特尔沃斯(Mark Shuttleworth)创办…

你适合哪种tiktok广告账户类型?

TikTok在广告营销方面的分类体系极为详尽。在开设广告账户时,根据不同的海外市场和商品类型,TikTok会有各自的开户标准。此外,广告主所开设的TikTok广告账户类型会直接影响其可投放的广告类型。在广告出价方面,广告主的营销目标不…

平衡者:陈欣的宇宙使命

第一章 异象初现 2145年,地球已经不再是人类唯一的家园。随着科技的飞速发展,人类在银河系内建立了多个殖民星球。然而,这些新世界的繁荣背后隐藏着一个巨大的危机——各个星球之间的资源分配不均,导致了严重的社会动荡和冲突。 …