我收到错误 LNK2019::我的测试项目的未解析外部符号正在测试 .dll 类型的项目

问题描述 投票:0回答:0

我正在使用 Microsoft Native Visual C++ 单元测试(.NET 框架工作 4.5)。我正在 visual studio 2012 中为我的“xyz 项目”创建 TEST 项目,该项目具有配置类型动态库(属性->配置属性->常规)。 我正在从“xyz 项目”中定义的 TEST 项目调用方法。 我在 Linker->Input->Additional Dependencies for TEST project 的 test.cpp 和 xyz.dll 中添加了正确的头文件。

问题只会在我构建我的测试项目时出现。 错误显示“错误 LNK2019:未解析的外部符号”public:bool __thiscall xyz_comm::send(void *,class xyz_Node *,int *)。 据我所知,这个错误不应该出现,因为我已经添加了 xyz.dll(路径是正确的,没有拼写或语法问题)。

我的解决方案: 在挠了挠头之后,我找到了解决方法。 当我将测试项目的配置(Properties->Configuration Properties->General)从动态库(.dll)更改为静态库(.lib)时,这个问题令人震惊地解决了。

我的问题:

  1. 如何通过将配置保留为动态库(.dll)并正确构建它来解决我的错误。
  2. Microsoft Native Visual C++ 单元测试是否支持对.dll 项目进行测试?如果不是,哪个 C++ 测试框架支持 .dll 项目测试
unit-testing c++11 visual-c++ visual-studio-2012 microsoft-unit-testing
© www.soinside.com 2019 - 2024. All rights reserved.