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}"
extra
APPSDIR (Arduino コマンドがある場所)の新しいディレクトリに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
ます。そのため、コンパイルオプションを追加/更新するかどうかを決定するためにそれを確認します。