在Arduino环境中启用异常处理

3
根据一篇关于Arduino环境是否支持异常的问题的回答,理论上可以在Arduino板上运行"异常"二进制文件。
我应该如何修改我的Arduino IDE以允许此操作?具体来说,我如何防止IDE在调用编译器时包含-fno-exceptions标志?

《The Pragmatic Bookshelf》的Advanced Arduino Hacking文章指出:“...它不支持异常,因为它们的运行时开销太大。”所以可能启用它们并不是一个好主意。 - Filippo De Luca
1个回答

3
Arduino IDE将-fno-exceptions传递给它使用的编译器(avr-gcc)。它这样做是因为编译器的文档规定了这是必需的(参见http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_cplusplus)。
由于这个参数对编译器的正确运行是必需的(无论对错),Arduino IDE没有提供更改此参数的方法。
尽管如此,如果你想尝试删除此参数以查看其效果,你需要编辑Arduino源代码(目前在https://github.com/arduino/Arduino/blob/master/app/src/processing/app/debug/Compiler.java中的第589行),并重新构建IDE。

11
或者更简单的方法是移动avr-gcc编译器,并用一个脚本来过滤标志,然后间接地调用编译器。 - Martin York

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接