是否可以在Arduino中显示编译器警告?

时间:2011-10-18 06:49:14

标签: arduino

我希望Arduino IDE显示编译器警告,我宁愿不必在终端中编译一次警告,并再次通过Arduino生成hex文件。

在单击“验证”按钮的同时按住Shift键可显示中间命令,但不显示其输出。这可能不用攻击Arduino IDE吗?

5 个答案:

答案 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 2011current 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。