添加c++支持
在项目资源管理器中双击RT-Thread Settings
打开项目配置
在新打开的标签页中点亮c++
及libc
组件
添加异常支持
在菜单栏中点击打开构建配置
图标
打开工具设置
标签页, 选择GNU ARM Cross C++ Linker
下的Miscellaneous
页面
确保Use newlib-nano
没有被选中
添加std::exception支持
打开链接脚本文件(由于RT-Thread Studio中链接脚本文件只读, 故需要使用其他文本编辑器打开此文件)
如图所示修改link.lds文件, 将__exidx_start = .;
及__exidx_end = .;
放入花括号内
(左边为修改后的链接脚本)
(左边为修改后的链接脚本)
(左边为修改后的链接脚本)
测试
在application
文件夹下添加test.cxx
文件
其中的代码如下:
#include <rtthread.h>
#include <stdexcept>
using namespace std;
void test_exception()
{
try {
throw runtime_error("some err");
} catch(const exception& e) {
rt_kprintf("err: %s\n", e.what());
}
rt_kprintf("finally\n");
}
MSH_CMD_EXPORT(test_exception, );
编译烧写运行, 标准异常被成功捕获🎉