0

我在 Visual Studio 2015 中使用 TinyEmbeddedTest 和 VisualGDB,并尝试创建一个单元测试项目作为我的解决方案的一部分。我的主要项目构建并运行良好,但单元测试项目出现链接器错误并且不会构建。

测试位于源文件 ADCTests.cpp 中,该文件包含

#include “ADC.c”

我认为这适用于 TinyEmbeddedTest。

文件 ADC.c 包含以下包含行:

#include “ADC.h”
#include “fault.h”

在 ADC.c 中,以下语句中会引发错误:

if (status == SUCCESS)
{
Fault_Clear(FAULT_ADC_FAILURE);
rawADCValue = HAL_ADC_GetValue(hADC);
}
else
{
Fault_Set(FAULT_ADC_FAILURE);
rawADCValue = 0u;
}

错误是:

对“Fault_Clear”的未定义引用</p>

对“Fault_Set”的未定义引用</p>

从这里我可以看到声明这些函数的头文件fault.h可以被工具链访问,因为否则会出现编译错误,但是源文件。定义了这些函数的 fault.c 似乎无法访问。这两个文件都在同一个项目中。

运行我的主项目时,我没有收到这些错误,仅在单元测试项目中。

我认为可能答案可能在于项目链接器设置,因此我在 Linker->[Additional Inputs] 中添加了一行,如下所示:

C:\Development\myProject\VisualGDB\Debug\Src

我假设这将使链接器可以访问由编译器创建的 .o 文件。不幸的是,这产生了一个新问题。构建现在失败,没有任何错误消息。构建消息列表简单地说

构建失败:arm-none-eabi-g++.exe 退出,代码 1 Id 返回 1 退出状态

当我查看日志时,它说

c:/sysgcc/arm-eabi/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld。 exe: 找不到 C:/Development/myProject/VisualGDB/Debug/Src: 权限被拒绝

有趣的是,最后一个路径是一个超链接,当我点击它时,我得到一个错误对话框

无法打开 'C:\SysGCC\arm-eabi\Development\myProject\VisualGDB\Debug\Src'</p>

这特别奇怪,因为我知道该路径不存在,而且那绝对不是我在链接器设置中输入的路径。

任何指导将不胜感激。

4

0 回答 0