Visual Studio单元测试静态库;防止主项目中的其他依赖项

时间:2016-03-24 11:56:09

标签: c++ visual-studio unit-testing

我有一个项目,我想在Visual Studio 2013中进行单元测试。在获取一些链接器错误并阅读this question的答案后,我已将项目类型更改为静态库(lib)。

我不理解在c ++中编译和链接的基本机制。在将我的项目更改为静态库时,似乎我已经失去了指定其他依赖项的能力,这很痛苦,因为我需要为我的主项目提供三个库,我想测试它。

我应该怎么做才能测试这个项目,有没有办法让我的项目成为静态库并仍然指定其他依赖项?

1 个答案:

答案 0 :(得分:2)

静态库是目标文件的集合。没有涉及链接器。依赖关系尚未解决。它只需要构建标题。

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

但是,请注意,除了上面描述的“经典”构建过程之外,Visual Studio IDE还提供了抽象(方便,但有时有点误导,特别是对于新手而言),称为“项目引用”和“项目依赖项”。有一些选项可以使静态库“依赖”其他静态库。此外,可执行文件可以依赖于第一个静态库。启用“链接依赖项”后,Visual Studio将递归地解析整个依赖关系链,并将所有必需的链接链接到可执行文件中。

另见: