需求

在使用 stm32 cube ide 开发的时候,希望通过 c++ 开发,但是自动生成的一些文件是 c 语言的,所以需要解决混合开发的问题。

解决

项目使用 cpp

在新建项目的时候,targeted language 选择 C++ 即可。

混合开发

所有 cpp 需要用到的 c 的头文件,都需要包含 extern "C" 这个标识,需要把相关代码如下包含起来:

// may be main.h
#ifdef __cplusplus
extern "C" {
#endif

    // something

#ifdef __cplusplus
}
#endif

参考

STM32CubeIDE实现nRF24L01通信(C和C++混合编程)

STM32CubeMX快速创建工程 点亮LED灯 设置C/C++混合编译

让你的 STM32Cube KEILV5 + HAL库工程支持C++开发

C 和 C++混合编译