问题描述
我在 Visual Studio 2015 中使用 TinyEmbeddedTest 和 VisualGDB,并尝试创建一个单元测试项目作为我的解决方案的一部分。我的主项目构建并运行良好,但单元测试项目出现链接器错误并且无法构建。
#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”的未定义引用
对“Fault_Set”的未定义引用
由此我可以看到,声明这些函数的头文件fault.h可以被工具链访问,否则会出现编译错误,但源文件。定义这些函数的 fault.c 似乎无法访问。这两个文件都在同一个项目中。
我在运行主项目时没有遇到这些错误,只有在单元测试项目中。
我认为答案可能在于项目链接器设置,因此我在链接器->[附加输入]中添加了一行,如下所示:
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'
这个特别奇怪,因为我知道那个路径不存在,而且那绝对不是我在链接器设置中输入的路径。
任何指导将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)