Error 3 error LNK2019: unresolved external symbol _SEGGER_RTT_printf referenced in function _BluetoothManager_SendATCommand BluetoothManager.obj Unittest
Error 4 error LNK2001: unresolved external symbol _SEGGER_RTT_printf WialonIPS.obj Unittest
涉及到的 SEGGER_RTT 介绍:
SEGGER_RTT 软件包是一款基于 SEGGER 的 J-Link RTT 来开发,把 RT-Thread 的 console 口通过 J-Link RTT 进行传输,从而实现 console 口进行一个比较方便的交互,可以完全用来替代 UART 口。这里的 RTT 是 Real time Transfer 的缩写。
J-LINK 可以通过查询变量的方法来查看特定变量的值,SEGGER_RTT 的工具也是利用这一原理。
简单来说就是不占用UART ,使用J-Link 辅助来完成log 的 输出。
SEGGER_RTT 软件包的特点总结如下:
可以在中断中打印
可以缓存开机的 log
可以接收 finsh 命令
多平台支持
不依赖操作系统,单机裸机都可以运行 SEGGER_printf
可以支持多种 terminal 端口使用,打印不同的 log
可以不用初始化就可以直接使用
参考:SEGGER_RTT是什么?如何去使用它
目前的结论是 UT 找不到SEFFER_RTT 相关实现的C 文件
类似这种error 还有三四处。都是使用了未定义(声明过)的函数。有些函数是 存在.a 文件的,或者是C99 库里的(由于Rhapsody 只可以链接vs2008 ,有些新的c库不支持)