我们正在模拟我们的代码,但是由于模拟的标头包括包含其他几个文件的原始标头,因此我们难以消除模拟文件包含的其他文件的依赖关系。我们得到的错误如下:
In file included from ../nRF5_SDK_11.0.0_89a8197/components/softdevice/s130/headers/ble_gap.h:48:0,
from ../nRF5_SDK_11.0.0_89a8197/components/softdevice/s130/headers/ble.h:52,
from ../infrastructure/microcontroller_abstraction/ble/include/ble_service.h:4,
from ../infrastructure/system_abstraction/pressure/include/pressure_service.h:15,
from ./mocks/pressure_service_mock.h:5,
from ./mocks/pressure_service_mock.c:7:
../nRF5_SDK_11.0.0_89a8197/components/softdevice/s130/headers/ble_gap.h: In function 'sd_ble_gap_address_set':
../nRF5_SDK_11.0.0_89a8197/components/softdevice/s130/headers/nrf_svc.h:66:5: error: unknown register name 'r0' in 'asm'
__asm( \
^
这是由于以下示例场景:让我们以示例文件压力服务mock.c为例,mock.c ----包括---> mock.h 事情是,既然生成了mock.h,它就是包括 pressure_service.h 并且由于我们包括 pressure_service.h ,它试图包括 ble_service.h 然后向上包含原始 SDK 的 c 文件的层次结构未编译,但必须包含头文件
我们如何阻止 Cmock 包含 pressure_service.h?
请协助我相信这是一个普遍的问题,这是人们使用 CMOCK 的全部目的,但我们似乎无法找到解决方案。