请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: AM263P4
在 C++工程中使用 MCU PLUS SDK 时、我注意到一些头文件损坏了 C 链接防护装置。 受影响的标头使用 #ifdef _cplusplus而不是 #ifdef __cplusplus。 因此、缺少的只是一个前导下划线 (_)。
由于_cplusplus未定义、extern "C" {...}因此缺少、因此从 C++链接到 C 对象失败。
显示模式的片段。
#ifdef _cplusplus // <- needs to be __cplusplus
extern "C" {
#endif
// C code
#ifdef _cplusplus // <- needs to be __cplusplus
}
#endif
我在以下头文件中发现该问题:
- MCU_PLUS_SDK_am263px_11_00_00_19/source/SDL/ECC_BUS_SAFETY_V0/sdl_ecc_bus_safety.h
- mcu_plus_sdk_am263px_11_00_00_19/source/sdl/ecc_bus_safety/V0/am263px/sdl_ecc_bus_safety_soc.h soc
- MCU_PLUS_SDK_am263px_11_00_00_19/source/SDL/MCRC/V0/sdl_mcrc.h
- MCU_PLUS_SDK_am263px_11_00_00_19/source/SDL/MCRC/V0/am263px/sdl_mcrc_soc.h soc
现在、我只在自己的extern "C" { ... }代码块中包含受影响的标头。
此致
Tobias Jäggi ć
我以前使用过
- C++ 17
- AM263Px 控制卡
- 适用于 AM263Px 11.0.0.19 的 MCU+ SDK