Visual studio VC2010 C++;-组织源文件 关于如何在VC 2010 C++项目中组织源文件,我有一些问题。包含的默认过滤器将不足够,因为最终,我将有很多.cpp和.hpp文件,所以它不会很混乱。我想在项目的根目录下创建一个名为“source”的文件夹,然后在“source”中为我想使用的各种源文件类别创建文件夹。当我右键单击解决方案时,我只能选择添加过滤器,而不是文件夹。我可以在windows资源管理器中手动创建文件夹,然后将其包括在内,但这样我就无法添加筛选器。有没有一种方法可以添加新文件夹(不使用windows资源管理器)而仍然使用过滤器

Visual studio VC2010 C++;-组织源文件 关于如何在VC 2010 C++项目中组织源文件,我有一些问题。包含的默认过滤器将不足够,因为最终,我将有很多.cpp和.hpp文件,所以它不会很混乱。我想在项目的根目录下创建一个名为“source”的文件夹,然后在“source”中为我想使用的各种源文件类别创建文件夹。当我右键单击解决方案时,我只能选择添加过滤器,而不是文件夹。我可以在windows资源管理器中手动创建文件夹,然后将其包括在内,但这样我就无法添加筛选器。有没有一种方法可以添加新文件夹(不使用windows资源管理器)而仍然使用过滤器,visual-studio,visual-studio-2010,Visual Studio,Visual Studio 2010,另外,是否有类似于$(CURDIR)的东西可以用来包含源文件文件夹而不需要绝对路径 感谢帮助< p>你对VisualStudio如何与C++文件一起工作有点困惑,但没关系,因为文档太糟糕了。第一件事:与C#或Java不同,项目中文件的排列与磁盘上文件的排列无关。实际上,文件和文件夹不在项目中;项目仅列出文件和文件夹的名称和路径,这些文件和文件夹必须已经存在于磁盘上 通常,您可以创建文件夹的布局,其中包含源文件。您可以在VisualStudio之外执行此操作。您还可以创建一个项目文件。当您向项目“

另外,是否有类似于$(CURDIR)的东西可以用来包含源文件文件夹而不需要绝对路径


感谢帮助

< p>你对VisualStudio如何与C++文件一起工作有点困惑,但没关系,因为文档太糟糕了。第一件事:与C#或Java不同,项目中文件的排列与磁盘上文件的排列无关。实际上,文件和文件夹不在项目中;项目仅列出文件和文件夹的名称和路径,这些文件和文件夹必须已经存在于磁盘上

通常,您可以创建文件夹的布局,其中包含源文件。您可以在VisualStudio之外执行此操作。您还可以创建一个项目文件。当您向项目“添加文件”时,您所做的只是告诉项目在磁盘上的何处查找文件

让我们使用一个特定的示例,我将向您展示如何组织它。假设您正在制作一个名为超级计算器的图形计算器程序。您将拥有一个源文件夹,然后在源文件夹中创建文件夹以保存不同的文件。假设您创建的文件夹是:

  • SuperCalc\Source\Input
  • SuperCalc\Source\Math
  • SuperCalc\Source\Math\Matrix
  • SuperCalc\Source\Output
您有三个子目录
输入
输出
,和
数学
Math
子目录有一个名为
Matrix
的子目录。您将在输入、数学、矩阵和输出中拥有.cpp文件。您将使用Windows资源管理器或命令提示符创建这些目录(文件夹)

现在您还需要创建一个解决方案文件(
SuperCalc.sln
)和一个项目文件(
SuperCalc.vcxproj
&
SuperCalc.vcxproj.filters
)。在VisualStudio中执行此操作。项目文件通常位于解决方案目录的子文件夹中;这将由Visual Studio自动为您完成。选择一个位置来进行测试 解决方案文件——它应该位于与源代码相同的目录结构(文件夹树)中。我建议将其放在源目录旁边,在:

  • SuperCalc\Build
进入VS并选择
文件>新建>项目>Visual Studio解决方案>空白解决方案文件
。给解决方案一个名称(可能是“SuperCalc”)和一个位置(我们刚刚在
SuperCalc\Build
目录中选择的位置)。它将为您创建解决方案文件

现在,右键单击解决方案浏览器中的解决方案(“解决方案超级计算器,0个项目”),然后选择
Add>newproject
。选择一个名称——这将是您的程序可执行文件的名称,如“SuperCalc”!选择Win32,或者选择Win32控制台应用程序(这是一个DOS控制台程序)或者Win32 Project(这是一个普通的Windows GUI程序)。通常我会单击应用程序设置来进行一些重要的更改:首先,我选择空项目,因为我不希望VisualStudio为我创建文件和代码,除非我告诉它。当一切都按我想要的方式设置好后,我单击FINISH

现在,您已经获得了由VisualStudio创建的解决方案文件和项目。您还可以在VisualStudio之外创建源代码,或者至少创建源代码所在的目录结构(文件夹树)。是时候把这两件事联系起来了

如果需要,可以将所有源文件列在项目的源文件过滤器中。即使它们来自不同的目录(输入、矩阵等),磁盘上文件的位置和它们在项目中的外观之间也没有必要的关系。但是如果你有很多文件,如果你创建“子过滤器”,在源文件过滤器中创建过滤器,并为它们提供源文件的子文件夹的名称,就会更容易。这样,您就可以在项目文件中复制磁盘目录的结构

右键单击“SuperCalc”项目的源文件过滤器,然后选择添加>添加新过滤器。给它命名为
Input
(SuperCalc\Source目录的第一个)。同时创建过滤器
Math
Output
。右键单击
数学
过滤器,然后选择添加>添加新过滤器,以创建名为
矩阵
(数学内部)的子过滤器。现在您有了这些过滤器:

由于没有绝对路径,您可以将整个SuperCalc目录树移到其他地方,所有这些都仍然有效。不需要像$(CURDIR)这样的环境变量hack

最后要知道的一件事是:由于您将源文件放在多个目录中,因此
#include
可能会遇到一些问题,例如,正在处理头文件、.h或.hpp文件。您必须告诉编译器头文件所在的目录。它们可能分散在多个目录中。因此,编辑项目设置:右键单击解决方案资源管理器中的项目名称,选择属性,然后深入到配置属性>C/C++>常规。这个 SuperCalc Source Files Input Math Matrix Output <ClCompile Include="..\..\..\Source\Math\Matrix\matrix_multiply.cpp" /> ..\..\..\Source\Input;..\..\..\Source\Math;..\..\..\Source\Math\Matrix;..\..\..\Source\Output
#include "input_configuration.hpp"
MyProjet
   Math
     include
       random.h
       functions.h
     src
       random.cpp
       functions.cpp
   Probability
      include
        normal.h
      src
        normal.cpp
#include"Math/include/functions.h"
#include"Math/include/functions.h"
#include"Probability/include/normal.h"