我构建了一个C ++类,它接受来自用户的文件路径和文件模式,并在提供的位置搜索文件模式。例如:C:\ MyProject * .cpp列出给定位置中的所有.cp文件。
我能够成功构建和编译项目。现在我想要一个名为Executive的不同Project,它只包含一个main(),并且与上面提到的C ++类做同样的事情。
现在结构如下:
VS2010 Solution
- Navigator
-Headers
f1.h
f2.h
f3.h
-Source
f1.cpp
f2.cpp
f3.cpp
让我们说我希望在同一个解决方案下有另一个项目并称为Main / Executive,其主要目的是使一个main函数与导航器项目中的main相同。
我的问题是同一解决方案下的执行项目有main.cpp,可能还需要导航器项目的所有* .h文件的副本。我是否还需要将导航器的* .cpp文件复制到主项目的执行项目中?或者我应该在Executive项目中使用main并添加hte Navigator项目作为执行项目的参考?
答案 0 :(得分:2)
在Visual Studio中打开解决方案,在“新建项目”窗口中从该下拉列表中选择“添加到解决方案”选项并将其命名为Executive。
现在,当您在同一解决方案下有更多项目时,您可以转到Executive项目的属性,并使用C / C ++ - >一般设置附加包含目录../Navigator/Headers;../Navigator/Source;
。
然后在Executive项目的所有源文件中,您可以包含Navigator项目中的.cpp文件,例如:#include "f1.cpp"
。包含.cpp文件没有错。
但,如果您打开导航器项目的属性 - >会更好。常规,将配置类型更改为静态库(.lib)。然后在Executive项目中,您将其他包含目录设置为../Navigator/Headers;
和链接器 - >一般情况下,您将附加库目录设置为Navigator项目的输出文件夹(如果您尚未更改它的输出目录,则../Debug
用于调试配置和../Release
)和链接器 - >输入您在Additional Dependencies结尾处添加;Navigator.lib
。然后在Executive项目的源文件中,您只需要包含.h文件。为了确保在构建整个解决方案之前在Executive项目之前构建Navigator项目,您可以转到解决方案的属性 - >项目依赖关系并设置执行项目依赖于Navigator项目。