18

我已经使用 C++ 中的 Visual Studio 2012 开始了我的第一个更大的项目。我将在文件夹中构建我的源文件,但我找不到可以在哪里创建真正的文件夹,就像在 Windows 资源管理器中一样。所以这是我的问题。

如何在我的项目中创建真正的文件夹?

4

2 回答 2

25

IDE 有一个命令,“新建文件夹”。它甚至出现在 Project + Add 上下文菜单中,当您使用 Tools + Customize 查看上下文菜单时可以看到。然而,它隐藏在 C++ IDE 中。故意地。

了解它为什么被隐藏很重要。它让您远离麻烦,当您使用资源管理器创建文件夹时会遇到这种麻烦。

问题在于 C++ 文件的构建方式。当编译器完成它们时,它们会生成一个 .obj 文件。该 obj 文件存储在名称为项目设置的目录中。您可以通过 Project + Properties、General、Intermediate Directory 设置看到它。对于单个 .cpp 文件,它是 C/C++、输出文件、目标文件名。该默认设置是$(IntDir)一个宏,它告诉编译器使用中间目录设置。使用默认设置,Debug 构建的所有 .obj 文件最终都位于 Debug 子目录中。发布版本的发布子目录。无论 .cpp 存储在何处。

也许你现在看到了熊陷阱。如果您使用 .cpp 文件创建子目录,那么当该子目录中的 .cpp 文件与另一个子目录中的另一个 .cpp 文件名称相同时,您将遇到麻烦。他们生成一个同名的 .obj 文件。一个覆盖另一个,后者是最后编译的。这会产生非常神秘的链接器错误。您将收到重复的符号错误,因为最后构建的 .obj 文件链接了两次,并且覆盖的 .obj 文件缺少符号错误。

所以继续创建一个子目录,但要注意这个问题。如果发生这种冲突,您必须更改 .cpp 文件的对象文件名设置。

于 2012-10-20T16:25:04.250 回答
1

这有点烦人,但是,这是可以做的:

在 Visual Studio 中创建新文件夹。这不会在文件系统中创建新文件夹。将新项目添加到文件夹。为项目选择正确的目录。

例如,如果您的项目位于 %Documents%\Project,并且您的新文件夹名称为 Folder,那么您将在 %Documents%\Project\Folder 的文件夹中添加一个新项目。

Visual Studio 2012 会将项目放在您想要的文件夹中。如果您添加一个新项目,它将默认为同一个文件夹。这就是烦人的部分。如果您为所有项目项目创建 3 个文件夹并尝试向每个文件夹添加一个新项目,Visual Studio 将尝试将所有 3 个项目放在文件系统中的同一位置(最后一个文件夹中添加了新项目),同时将项目放入正确的 Visual Studio 文件夹中。

Visual Studio 中可能有此设置。我还没有找到它。我也没有那么认真。

于 2012-10-20T15:55:36.397 回答