我希望Arduino IDE显示编译器警告,我宁愿不必在终端中编译一次警告,并再次通过Arduino生成hex文件。
在单击“验证”按钮的同时按住Shift键可显示中间命令,但不显示其输出。这可能不用攻击Arduino IDE吗?
答案 0 :(得分:3)
使用Arduino IDE 1.6.4及更高版本,可以通过文件>轻松调整警告级别。偏好>编译器警告:。
使用 Arduino AVR Boards ,通过此选项设置的编译器标志为:
-w
-Wall
-Wall -Wextra
答案 1 :(得分:2)
默认的编译器命令行选项包括-w,它会抑制警告,但您可以通过编辑C:\Program Files (x86)\Arduino\hardware\arduino\avr\platform.txt
来更改它。由于库可能包含警告,但我想 - 我自己也是错误的,我删除了-w选项,然后添加到我的源代码中:
#pragma GCC diagnostic error "-Wall"
#pragma GCC diagnostic error "-Werror"
答案 2 :(得分:1)
此功能已添加到最新的Arduino源代码中,但尚未发布(请参阅https://github.com/arduino/Arduino/commit/a2235e3cdc3856cbeba7de84e81bfd914b3ebaea)。
计划将其纳入下一个主要的Arduino IDE版本(版本1.0),该版本目前为planned for release at the end of October 2011。 current release candidate有此修复程序(截至2011年10月25日)。
要在Arduino IDE中启用编译器警告,请打开File
| Preferences
然后勾选Show verbose output during: compilation
和/或Show verbose output during: upload
。
答案 3 :(得分:1)
@Matthew描述的功能,不仅显示警告,而且还有许多关于如何调用编译器的令人分心的信息。
请参阅我的问题的附录Have Arduino IDE set compiler warnings to error,实施对arduino脚本的更改:
-export PATH="${APPDIR}/java/bin:${PATH}"
+export ORGPATH="${APPDIR}/java/bin:${PATH}"
+export PATH="${APPDIR}/extra:${ORGPATH}"
并制作extra/avr-g++
:
#! /usr/bin/env python
import os
import sys
import subprocess
checklibpat = [
'SoftwareSerial',
'GSM_GPRS',
]
werr = '-Werror'
wall = '-Wall'
cmd = ['avr-g++'] + sys.argv[1:]
os.environ['PATH'] = os.environ['ORGPATH']
fname = sys.argv[-2][:]
extend = False
warn = False
if cmd[-2].startswith('/tmp'):
extend = True
warn = True
if not extend:
for l in checklibpat:
if l in cmd[-2]:
warn = True
break
if warn:
#print len(fname), list(fname)
for i, c in enumerate(cmd):
if c == '-w':
cmd[i] = wall
break
if extend:
cmd.insert(1, werr)
## to enable deprecated stuff (Print.cpp) with gcc 4.7.0
#cmd.insert(1, '-D__PROG_TYPES_COMPAT__=1')
subprocess.call(cmd)
如果您不希望编译器将源中的警告解释为错误,请注释掉extend = True
。
答案 4 :(得分:0)
这里的大多数答案似乎已经过时了。从Arduino.app 1.5开始,您必须找到文件preferences.txt(https://www.arduino.cc/en/Hacking/Preferences)并将行compiler.warning_level=none
更改为compiler.warning_level=all
重要提示:首先退出Arduino,编辑,然后启动再次IDE。