VS2022配置工程的编译路径(输出目录和中间目录)
创始人
2025-06-01 19:24:39
0

VS2022配置工程的编译路径(输出目录和中间目录)

TIPS:以下使用visual C++中Windows桌面向导生成的解决方案为例。且演示的visual studio的版本为2022,即visual studio 2022。

 注意:不勾选放在同一目录下

 

 

一、说明默认的工程配置编译路径

我们在解决方案内新建两个项目

 其中,两个项目project1和project2的编译路径,即输出目录和中间目录均是默认配置。

项目(鼠标右键)→属性→配置属性→常规

配置:所有配置意味着包括debug和release版本。编译平台为x64,即64位操作系统。

$(SolutionDir):解决方案名,即.sln所在路径

$(Platform):解决方案平台名称,如x86、x64

$(Configuration):当前的编译配置名称,如Release、Debug

$(ProjectName):当前工程(项目)名称,如示例中的project1,project2

(补充)我们可以在:项目(鼠标右键)→属性→配置属性→常规→输出目录(点击下拉箭头)→编辑→宏中看到相应名称和值的一一对应关系。

 然后我们将两个项目均运行编译,打开文件所在路径。

 

 

我们发现解决方案Project1中的文件生成结构如上所述。

我们在回想我们之前看到的项目默认配置路径。

默认情况下,跟project1、project2两个项目同级生成的debug是project1和project2的输出目录,即与.sln文件同级目录

 TIPS:解决方案平台默认是x64。所以默认配置情况下$(Platform)的作用透明。

project1、project2的中间目录,通俗的理解就是日志信息,每次编译项目都会增加中间目录所占大小。在默认情况下,中间目录生成路径会在每个项目中均有生成

这样的结果就会造成其中间目录和输出目录对源码的干扰性很大,当我们需要对源码进行打包发送给其他伙伴、同事的时候,我们本来只有几KB的源码,由于我们的工程中包含输出目录和中间目录使得我们的工程变成了几百MB,这样是非常不友好的。接下来,讲述如何通过手动配置工程编译路径避免这种情况的发生。


二、手动配置编译路径

先在解决方案project2中创建两个项目,分别是project1、project2,同上

 但是其输出目录和中间目录我们将手动更改,切换为所有配置所有平台

这样做意味着不管是x64或者x86平台我们都可进行指定目录生成。

项目(鼠标右键)→属性→配置属性→常规→输出目录/中间目录

输出目录:$(SolutionDir)..\bin\$(Platform)\$(Configuration)\
中间目录:$(SolutionDir)..\temp\$(Platform)\$(Configuration)\$(ProjectName)\

紧接着,点击确定即可。

我们将两个项目进行编译运行,打开文件所在路径。

 

我们发现经过我们手动配置编译路径,跟解决方案Project2同级的目录下生成了bin、temp目录。

bin目录

Win64意味着我们编译的平台是64位操作系统,对应我们手动配置的$(Platform)。

Debug意味着我们的配置是Debug模式。对应我们手动配置的$(Configuration)。 

Debug路径下对应的就是我们的输出目录,其中包括project1、project2项目在debug模式下生成的exe文件及附带文件。

temp目录

Win64意味着我们编译的平台是64位操作系统,对应我们手动配置的$(Platform)。 

Debug意味着我们的配置是Debug模式。对应我们手动配置的$(Configuration)。

 Project1、Project2就是两个项目生成的中间目录,通俗的说就是项目对应的日志文件信息。对应我们手动配置的$(ProjectName)。

 

解决方案目录 

我们再打开我们的解决方案目录。

发现只有两个项目。 

 

 其中项目project1、project2中只保留最基本的配置,以及源码。

总结

我们应当避免其他文件(如输出目录、中间目录等)对程序源码的干扰,为了保证源码管理整洁干净,我们务必手动配置编译输出路径。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...