存根用于STM32单元测试的HAL库
Stubbing the HAL library for STM32 Unit tests
为了让单元测试为我的STM32项目工作,我正在嘲笑Hal库。 到目前为止,我们已经设法模拟它并创建虚拟文件。但是我遇到了一个问题。 此时我们有 3 个 .h 文件,一个用于 #defines,一个用于函数,另一个是 HAL 文件的直接副本。该程序似乎已编译并给我链接错误。
它给出的错误是"多重定义",但不是一个错误。大概200个。它在 hal_stub_functions.h 中的所有函数上都给出了错误 它甚至似乎循环了几次。我们已经检查了所有文件。没有一个包含错误的文件或彼此。所有文件都包含 If/Def/Endif。这 3 个文件不包含彼此。函数文件包括 #Defines 文件。 我不知道从哪里开始寻找这个。尝试了一般的东西,如前所述检查包括。项目设置均正确。 如果有人有任何帮助或想法,我将不胜感激。
编辑: 我想我可能发现了一些奇怪的东西。 图片在这里 似乎 Eclipse 两次找到每个函数。在同一个地方。我该如何解决这个问题?
编辑2: 我认为一般的问题是链接器以某种方式查找文件两次。
提前致谢 :)
解决方案: 使所有函数静态。 由于多个文件包含.h文件,因此它们不断重新定义功能。甚至应用了 #ifdef。#pragma 曾经也无济于事。
相关文章:
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- VC++本机单元测试,找不到调试符号
- 用于交叉编译和CMake的预处理器宏的单元测试
- C++ 用于单元测试的模板模板
- 提升 1.64 单元测试编译失败
- 单元测试欧拉到四元数实现失败
- 运行 C++ 单元测试时LNK2005链接错误
- 禁用自动捕获 Googletest 单元测试中的C++异常
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- 使用 Google Test 对自定义断言函数进行单元测试
- 如何将我的 CMake 项目配置为运行所有单元测试?
- 在Qt C++单元测试中动态加载QQuickWindow而不是QQuickWidget
- MS 本机单元测试 - 断言::线程失败不起作用
- 如何获取 CMake 单元测试的相对路径?
- QTimer 超时不会在单元测试中触发
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 在 AtMega32a 上运行的C++的单元测试
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- 存根用于STM32单元测试的HAL库