0

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}"

extraAPPSDIR (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ます。そのため、コンパイルオプションを追加/更新するかどうかを決定するためにそれを確認します。

4

2 に答える 2

3

Linux を使用しているようです。Arduino はスクリプトなので、スクリプトに PATH を設定して、プログラムを含むディレクトリavr-g++の先頭にディレクトリを含めることができます。次に、Java のものはそこからコンパイラーを取得する必要があります。

そのプログラムは、通常の/usr/bin/avr-g++を追加のオプションで呼び出します。

于 2012-05-26T06:04:10.967 に答える
1

選択肢の 1 つは、コマンド ラインからスケッチをコンパイルすることです。このメイクファイルを見てください。

于 2012-05-26T05:15:49.723 に答える