文章目录
- 一、配置管理
- 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