为了使单元测试适用于我的STM32项目,我在模拟Hal库。到目前为止,我们已经设法模拟了它并创建了虚拟文件。但是我遇到了一个问题。到目前为止,我们有3个.h文件,一个用于#defines,一个用于函数,另一个是HAL文件的直接副本。该程序似乎已编译,并给我链接错误。
它给出的错误是“的多个定义”,但不是一个错误。大约是200。在hal_stub_functions.h中的所有函数上均给出错误它甚至似乎循环了几次。我们已经检查了所有文件。没有一个包含错误的文件或彼此包含。所有文件都包含If / Def / Endif。这三个文件互不包含。功能文件包含#Defines文件。我不知道从哪里开始寻找这个。尝试了一般的东西,如提到的检查包括。项目设置都是正确的。如果有人有任何帮助或想法,请非常感谢。
编辑:想想我可能发现了一些奇怪的东西。Image here好像Eclipse两次发现每个函数。在同一地点。我该如何解决?
编辑2:我认为一般的问题是链接器以某种方式两次查找文件。
谢谢:)
解决方案:使所有功能静态。由于包括.h文件的多个文件,它们不断地重新定义功能。甚至使用了#ifdef。 #pragma曾经也没有帮助。