Windows XPでC30ツールチェーンを備えた粗いIDE(Microchip MPLAB)を使用しています。C コンパイラの出力は非常にノイズが多く、制御できません。出力ウィンドウで実際の警告やエラーを見つけるのは非常に困難です。
コンパイラの引数を受け取り、同じ引数でコンパイラを呼び出し、結果をフィルタリングしてstdoutに出力する Python スクリプトを作成したいと考えています。次に、ツールチェーン設定で、コンパイラの実行可能ファイルをスクリプトに置き換えることができます。IDE がスクリプトを呼び出し、フィルタリングされたコンパイラ出力を受け取ります。
コンパイラを実行するための私のコードは次のようになります。
arguments = ' '.join(sys.argv[1:])
cmd = '%s %s' % (compiler_path, arguments)
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
問題は、スクリプトの実行時に引数からの引用符が消費されるため、IDE が次の引数でスクリプトを呼び出す場合:
main.c -o"main.o"
引数の値は
main.c -omain.o
最も明白な解決策は、引数リスト全体を引用符で囲むことですが、これには IDE のコンパイラ呼び出しコードを変更する必要があります。バッチ ファイルも使用してみましたが、9 つのパラメーター (%1 から %9) しか受け入れられず、コンパイラーは 15 個以上のパラメーターで呼び出されます。
スクリプトからプロセスにまったく同じ引数を転送する方法はありますか?