Visual Studio Makefile项目生成了额外的 'obj' 文件夹。

5
我在Visual Studio 2012 express中使用Makefile项目很好。然而,无论指定什么Build Command,Visual Studio都会创建一个包含空子文件夹obj\Win32\Debug和obj\Win32\Release的'obj'文件夹。
要重现这个问题,只需创建一个“Visual C++ - General - Makefile Project”,并在Build Command Line中使用像'dir'这样的DOS命令。一旦构建,空的obj\Win32\Debug文件夹就会出现。
我可以在我的Mercurial ignore文件中跳过这些内容,但找到一个解决方法会更好。有人知道如何让Visual Studio不生成这些空文件夹吗?

https://dev59.com/R2Uo5IYBdhLWcg3w-zii - Yury Korobkin
2个回答

2

找到了一个技巧:将中间输出目录设置在一个现有的目录上。我手动修改了项目文件并添加了以下内容:

<IntermediateOutputPath>$(ProjectDir)</IntermediateOutputPath>

在配置 PropertyGroup 中,我使用了项目目录,该目录显然已经存在。不再有无用的 obj 目录!


1

Obj 文件夹是 Visual Studio 对您的项目的元数据,用于 IntelliSense 支持和设计器支持(WF/WPF 应用程序)。在大多数情况下,您可以完全忽略此文件夹而不会出现问题。

但有时,这些数据可能会损坏,并导致 VS 显示无效的 IntelliSense 选项,工作流/WPF 设计器可能会出错。关闭 VS 并删除 obj 文件夹就可以快速解决这个问题。


感谢您的回复。但是,在使用外部构建工具的Makefile项目中,这个obj文件夹始终为空。也许有一种方法可以将其重定向到中间目录$(IntDir)吗? - chopin952
很遗憾,没有办法在VS中控制这种行为。它几乎出现在每种项目类型中,因此不仅限于VC++应用程序。 - ajawad987
你可以采取不同的方法来使你的构建在一个完全干净的目录中工作。默认情况下,构建将进入bin/$(configuration),但你可以将其指向任何地方。也许将输出定向到项目空间之外的某个地方会是一个不错的方法? - ajawad987

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接