AG32 下调用 CPP 代码的方法

1 min read CPLD

AG32 的 SDK 是 C 代码实现的。驱动和样例也都是 C 代码。

但 AG32 的 SDK 环境是支持 C++代码混用的。

并且使用方式也很简单:

1. CPP 的代码在工程中定义成.cpp 后缀;

2. 在 platformio.ini 里配置对 cpp 的编译;

样例工程 example_testCpp.rar 中,展示了一个极简的 C 调用 CPP 的样例。

在工程中,定义了一个 Circle 类,然后在 example 中使用该类。

样例说明:

1. 在 example 工程下新增 3 个文件:

2. 每个文件实现如下:3. 在 example.c 里调用如下:

样例很简单。

然后,需要在 platformio.ini 里配置下对 cpp 的使能即可。后续的编译,跟原来纯粹 C 一样使用即可。

最终从串口工具里,可以看到执行结果如下:

补充:

1. 如果要指定使用 c++的某个版本,则在 platformio.ini 里指定。

比如,要指定使用 c++20,则用:

build_src_flags = -std=c++20

2. 如果用以上的会出现 warning,该如何屏蔽?

仍然在上述的属性后,追加如:

build_src_flags = -std=c++20 -Wno-volatile

这篇文档有帮助吗?