【问题标题】:How to create a folder in Visual Studio C++ 2012如何在 Visual Studio C++ 2012 中创建文件夹
【发布时间】:2012-10-10 23:55:11
【问题描述】:

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

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

【问题讨论】:

  • 您可以右键单击项目以选择打开文件夹,如果有任何安慰的话。

标签: c++ visual-studio-2012 project directory


【解决方案1】:

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 文件的对象文件名设置。

【讨论】:

  • 感谢您的详细描述,但此时我正在卸载 VS2012 并再次下载 Qt-Creator,这是程序员为程序员提供的出色 IDE。无需为最少的标准功能安装数千个插件。
  • 有趣的是,默认构建设置的一个易于解决的缺点被隐藏会暴露缺陷的确切功能所掩盖......
  • -1 不起作用(对我来说)。我同意@rubenvb,隐藏该功能很有趣(以一种悲惨的方式),以掩盖一个易于解决的“问题”。尽管如此,显然没有办法激活(不管是什么词)该菜单项。我试过了。那么,魔法咒语是什么?
  • @Alf:它在解决方案资源管理器中被称为“显示所有文件”之类的东西,而不是虚拟过滤器之类的,你会显示实际的硬盘文件夹。
  • 我记录了一个你可以通过创建文件夹得到的构建问题,并解释了为什么该命令默认是隐藏的,以及如果它崩溃了你会怎么做。显然是为了比每个人的“这是一把枪,瞄准你的脚”的答案更有帮助。您认为这没有帮助,甚至不值得投反对票,这肯定是您缺乏想象力。
【解决方案2】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多