我有一个项目,我想在Visual Studio 2013中进行单元测试。在获取一些链接器错误并阅读this question的答案后,我已将项目类型更改为静态库(lib)。
我不理解在c ++中编译和链接的基本机制。在将我的项目更改为静态库时,似乎我已经失去了指定其他依赖项的能力,这很痛苦,因为我需要为我的主项目提供三个库,我想测试它。
我应该怎么做才能测试这个项目,有没有办法让我的项目成为静态库并仍然指定其他依赖项?
答案 0 :(得分:2)
静态库是目标文件的集合。没有涉及链接器。依赖关系尚未解决。它只需要构建标题。
现在,当您最终创建可执行文件(或动态库)时,您应该链接所有必需的依赖项。
但是,请注意,除了上面描述的“经典”构建过程之外,Visual Studio IDE还提供了抽象(方便,但有时有点误导,特别是对于新手而言),称为“项目引用”和“项目依赖项”。有一些选项可以使静态库“依赖”其他静态库。此外,可执行文件可以依赖于第一个静态库。启用“链接依赖项”后,Visual Studio将递归地解析整个依赖关系链,并将所有必需的链接链接到可执行文件中。
另见: