【问题标题】:Visual studio unit testing a static library; prevents additional dependencies in main projectVisual Studio 单元测试静态库;防止主项目中的其他依赖项
【发布时间】:2016-07-12 00:12:38
【问题描述】:

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

我不了解 C++ 中编译和链接的底层机制。在将我的项目更改为静态库时,我似乎失去了指定其他依赖项的能力,这很痛苦,因为我需要三个用于我想要测试的主项目的库。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    另见:

    【讨论】:

    • 添加项目引用和项目依赖并在我的测试项目中指定一些额外的依赖解决了这个问题,谢谢。
    猜你喜欢
    • 2017-04-06
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    相关资源
    最近更新 更多