Visual Studio 2010 C++项目结构

Visual Studio 2010 C++ Project structure

本文关键字:项目 结构 C++ 2010 Studio Visual      更新时间:2023-10-16

我构建了一个C++类,它接受用户提供的文件路径和文件模式,并在提供的位置搜索文件模式。例如:C:\MyProject*.cpp列出给定位置中的所有.cp文件。

我能够成功地构建和编译这个项目。现在我想要一个名为Executive的不同项目,它只包含一个main(),并且做与上面提到的C++类相同的事情。

现在的结构看起来像:

VS2010 Solution
  - Navigator
      -Headers
          f1.h
          f2.h
          f3.h
      -Source
          f1.cpp
          f2.cpp
          f3.cpp

比方说,我想在相同的解决方案下有另一个名为Main/Executive的项目,其主要目的是有一个与导航器中的Main项目做相同事情的Main函数。

我的问题是,同一解决方案下的Executive项目有main.cpp,可能还需要navigator项目的所有*.h文件的副本。我是否还需要将navigator的*.cpp文件复制到Executive项目以使main工作?还是我应该只在Executive项目中添加main,并添加hte Navigator项目作为对Executive项目的引用?

在Visual Studio中打开解决方案,从"新建项目"窗口的下拉列表中选择"添加到解决方案"选项,并将其命名为Executive。

现在,当您在同一解决方案下有更多项目时,您可以转到Executive项目的属性,并在C/C++->General中将Additional Include Directories设置为../Navigator/Headers;../Navigator/Source;

然后,在Executive项目的所有源文件中,您可以包括Navigator项目中的.cpp文件,例如:#include "f1.cpp"。包含.cpp文件并没有错。

但是,如果打开导航器项目的属性->General会更好,将配置类型更改为静态库(.lib)。然后在Executive项目中,将Additional Include Directories设置为../Navigator/Headers;,在Linker->General中将Additional library Directories设置到Navigator项目的输出文件夹(如果未更改其输出目录,则为调试配置的../Debug../Release),在Linker->Input中,在Additional的末尾添加;Navigator.lib依赖项。然后在Executive项目的源文件中,您只需要包含.h文件。为了确保在构建整个解决方案时,Navigator项目是在Executive项目之前构建的,您可以转到解决方案的属性->项目依赖项,并在那里设置Executive项目依赖于Navigator项目。