【发布时间】:2012-06-01 13:59:15
【问题描述】:
有没有办法将编译器警告设置为 Arduino IDE 中的错误?
或者任何通用的方式来设置 GCC 编译器选项?
我查看了 ~/.arduino/preferences.txt 文件,但没有发现任何表明微调控制的信息。我还查看了是否可以通过环境变量设置 GCC 选项,但我没有找到任何东西。
我不想让冗长的编译器输出(您可以使用 IDE 指定)过多地分散不必要的信息,我不想浪费时间阅读它。
我希望编译在出现警告时停止,以便清理代码。我的偏好是能够设置 -Werror= 选项,但通用的 -Werror 将适用于 .ino 项目的小代码大小。
附录:
根据所选答案中的建议,我实现了一个avr-g++ 脚本并将其放在普通avr-g++ 之前的路径中。为此,我将 Arduino 命令更改如下:
-export PATH="${APPDIR}/java/bin:${PATH}"
+export ORGPATH="${APPDIR}/java/bin:${PATH}"
+export PATH="${APPDIR}/extra:${ORGPATH}"
在 APPSDIR(Arduino 命令所在的位置)的新目录 extra 中,我有
avr-g++ 这是一个 Python 脚本:
#!/usr/bin/env python
import os
import sys
import subprocess
werr = '-Werror'
wall = '-Wall'
cmd = ['avr-g++'] + sys.argv[1:]
os.environ['PATH'] = os.environ['ORGPATH']
fname = sys.argv[-2][:]
if cmd[-2].startswith('/tmp'):
#print fname, list(fname) # this looks strange
for i, c in enumerate(cmd):
if c == '-w':
cmd[i] = wall
break
cmd.insert(1, werr)
subprocess.call(cmd)
因此,您将第一个命令替换为原始编译器名称,并重置用于不包含 extra 目录的环境。
fname 实际上很奇怪。如果你打印它,它只是abc.cpp,但它的长度要大得多,它实际上以/tmp开头。所以我检查它以决定是否添加/更新编译选项。
【问题讨论】:
标签: compiler-construction arduino options