在Visual Studio中使用子项目

时间:2012-11-02 08:00:20

标签: c++ c visual-studio-2010 visual-studio

我很习惯Linux开发和Makefiles,并且很久以前就开始使用(Windows和)Visual Studio。

我想做的是(我认为)非常简单,但我似乎无法使用Visual Studio找到它。

我必须编写一个应用程序,我可以分成几个独立的子部分。我想以增量方式工作,并创建几个项目,与主文件一起最终将完成我的整个项目。

我基本上想要的是能够编写一个小项目,有一个主要项目,以便我可以完全测试它,并将其用作下一个项目的依赖项。在这种情况下,较小的main将被停用(或者我可以对其进行注释),我只会更改启动项目。 如果我在编写更大的软件时发现子集中的错误,我可以更改启动项目并以较小的规模解决它。

嗯,这就是我整天用Python和Java做的事情。

我尝试在我的项目中创建新项目,但我总是遇到链接问题,我的主要项目知道子项目中的文件,而不是较小的项目等。 。

那么,我可以找到以这种方式工作的指南吗?

谢谢

3 个答案:

答案 0 :(得分:2)

对于个别项目:

每个项目属性表都有一个C ++选项页面。在这里,您可以用逗号分隔的形式指定“Addional Include Directories”。

同样,Linker应该有一个属性表,您可以在其中指定“Addional Include Dependencies”及其所依赖的库的名称。

对于主可执行文件的链接器依赖项:

转到该主项目,转到其属性,转到常用属性并选择“框架和参考”。这应该为您提供解决方案中所有项目的列表。继续添加它们,Visual Studio应自动为您添加正确的链接器标志。

抱歉,现在无法访问计算机,否则会提供准确的步骤。 Visual Studio有时会变得棘手,但是一旦你使用它,你会惊讶于它能为你做些什么。就个人而言,我喜欢它。

希望这有帮助。

答案 1 :(得分:1)

感谢Vaibhav,我找到了一个解决方案:

我必须:

  • 将子项目类型更改为lib而不是exe
  • 在主项目中添加子项目作为项目依赖项(这只是设置构建顺序)
  • 注释掉我的子项目的主要部分,只保留一个活动。
  • 在主项目的include repos中添加每个子项目include目录,以便编译器可以找到头文件
  • 添加通用目录作为链接器的依赖项(在这种情况下,它不是子项目的调试/发布文件夹,而是整个项目的输出目录)。
  • 在主项目的链接器的其他依赖项中添加子项目的lib文件的名称。

为简单起见,VS2010的项目依赖性功能只是改变了项目的构建顺序。 。 。我想念Eclipse。

如果我发现了一个错误,想要测试子项目,我必须:

  • 将启动项目更改为我想要更改的子项目。
  • 取消注释相应的主要
  • 将项目类型更改为exe而不是lib以便能够编译它。

调试,然后再做一切以继续处理我的主项目。 很无聊,你不觉得吗?

答案 2 :(得分:0)

看起来您正在尝试进行手动单元测试。使用Google.Test之类的内容。你需要为每个lib做一个测试项目。

我们有静态libs项目的目录。另一个带测试项目的目录。每个测试解决方案都包含一个exe项目和几个现有的lib项目。每个项目都配置了依赖项。您不需要手动设置链接器的其他依赖项(路径是邪恶的,lib文件的dir将从项目设置中获取),使用鼠标右键打开项目属性,公共属性,添加新引用并选择lib项目。您只需要设置其他包含目录。

当您发现新错误时 - 只需打开带有错误的库的测试项目,添加导致错误,修复错误并且感到满意的代码(有时会运行所有测试)。甚至更好 - 使用TDD