环境:
MounRiver Studio 版本:v1.84
操作系统:Win10
转换步骤如下:
-
右键要转换为C++的工程new->other,按下图选择
- 添加 头文件路径
将所有 C 编译器的头文件赋值到 C++ 编译器中:
- C++ Linker 设置:
- 添加 extern C
如果编译过程出现了 如下错误:
“e:/work_soft/mounriver_v183/mounriver_studio/toolchain/risc-v embedded gcc/bin/../lib/gcc/riscv-none-embed/8.2.0/../../../../riscv-none-embed/bin/ld.exe: ./User/main.o: in function `main':
E:\Works\Projects\PCB\SYJ01\docs\SYJ01-firmware\obj/../User/main.cpp:44: undefined reference to `LED_Init()'”
是 C++ 文件调用 c 文件引起的,需要在 C 的头文件中增加如下 extern "C" 定义:
#ifndef HARDWARE_LED_LED_H_
#define HARDWARE_LED_LED_H_
#include "ch32v20x_conf.h" // 包含各个头文件
#ifdef __cplusplus
extern "C" {
#endif
void LED_Init(void); // LED 初始化
#ifdef __cplusplus
}
#endif
#endif /* HARDWARE_LED_LED_H_ */
- 添加C++初始化函数,在启动文件调用main 函数之前,添加初始化函数
还需要两个空函数,必须声明在.c后缀的文件中:
- 此时工程文件环境已经配置好了,后缀.cpp的文件都会调用C++编译器编译,其他的就是C与C++互相调用的方法了。
加作者微信:jiyuyun18(积雨云), 交流电子技术
留言:入群,加入电子技术讨论群
留言:资料,领取免费电子技术学习资料