STM32 SW4STM32项目中无法启用G++ -fexceptions异常处理求助
我之前在SW4STM32里折腾过一模一样的问题,给你几个实用的解决步骤,应该能搞定这个error: exception handling disabled, use -fexceptions to enable错误:
确保选中C++编译器的配置项
右键你的项目 →Properties→C/C++ Build→Settings→Tool Settings,这里一定要选择GCC C++ Compiler(别误选成GCC C Compiler,C编译器的设置不会影响C++代码的编译规则)。添加
-fexceptions编译标志
在GCC C++ Compiler的子选项里找到Miscellaneous(杂项),在Other flags输入框的末尾添加-fexceptions(注意前面要加空格,和已有参数分隔开)。检查多配置模式的设置
留意Settings页面顶部的Configuration下拉框,确保你常用的Debug和Release模式都添加了这个标志——很多人只改了一个模式,切换编译模式后又会触发同样的报错。验证编译命令是否生效
保存设置后重新编译,打开Build Console查看完整的编译命令,确认-fexceptions确实出现在G++的参数列表里。如果没出现,可能是配置没保存,或者项目的全局设置覆盖了这个选项,这时候可以尝试清理项目(Project→Clean)后再重新构建。特殊情况:启动文件的异常支持
极少数情况下,STM32的启动文件可能关闭了异常相关的配置,但这种情况很少见。如果前面的步骤都没用,可以检查启动文件(比如startup_stm32xxxx.s)里的异常向量表和栈空间配置,确保C++异常需要的处理机制没有被禁用。
内容的提问来源于stack exchange,提问作者JuliusCaesar

