Visual studio单元测试静态库;防止主项目中的附加依赖项

Visual studio unit testing a static library; prevents additional dependencies in main project

本文关键字:项目 依赖 单元测试 studio 静态 Visual      更新时间:2023-10-16

我有一个项目要在Visual Studio 2013中进行单元测试。在收到一些链接器错误并阅读了这个问题的答案后,我将项目类型更改为静态库(lib)。

我不了解c++中编译和链接的基本机制。在将我的项目更改为静态库的过程中,我似乎失去了指定额外依赖项的能力,这很痛苦,因为我的主项目需要三个库来测试。

我应该做什么来测试这个项目,有没有办法让我的项目成为一个静态库,并且仍然指定额外的依赖项?

静态库是对象文件的集合。不涉及链接器。未解析依赖项。它只需要生成标头。

现在,当您最终创建一个可执行文件(或动态库)时,您应该链接所有必要的依赖项。

但是,请注意,除了上面描述的"经典"构建过程之外,VisualStudioIDE还提供了抽象(方便,但有时有点误导,尤其是对新手来说),称为"项目引用"answers"项目依赖项"。有一些选项可以使静态库"依赖"于其他静态库。此外,可执行文件可以依赖于第一个静态库。当"链接依赖项"被启用时,VisualStudio将递归地解析整个依赖链,并将所有必要的链接到您的可执行文件中。

另请参阅:

  • Visual Studio 2010中的"链接库依赖项"链接器选项的实际作用是什么?

  • MSDN-C/C++构建参考

  • MSDN-演练:创建和使用静态库(C++)

  • 什么是未定义的引用/未解决的外部符号错误,如何修复?