2

GCC のラッパーとして機能する python スクリプトを作成しています。GCC が取るオプションのほとんどは argparse で簡単に処理できますが、私は "-Wl,option" オプションに苦労しています。コンマの後にすべてを保存したいので、次のことを試しました:

parser = argparse.ArgumentParser()
parser.add_argument("-Wl,", help="Option to pass to linker.")
known, unknown = parser.parse_known_args()
print(known)
print(unknown)

ただし、次のようにスクリプトを実行すると:

python foo.py -Wl,foo

次の出力が得られます。

Namespace(E=False, S=False, Wl,=None, c=False, optimization=None, shared=False, target=None)
['-Wl,foo']

これは、-Wl オプションが認識されなかったことを示しています。

add_argument 行を次のように変更できます。

parser.add_argument("-W", help="Option to pass to linker.")

これは機能し、W オプションに「l,foo」を格納しますが、GCC は警告フラグに -W を使用するため、それらを -Wl オプションから分離しておきたいと考えています。

不明な引数のリストを調べてそのように処理することはできましたが、問題に対するより洗練された解決策があることを望んでいました。任意のヒント?

4

2 に答える 2

0

CustomAction でこれを修正できるはずです。http://pymotw.com/2/argparse/には、これを行う方法の良い例があります。

于 2013-06-26T21:33:55.767 に答える
0

argparse に渡す前に、simple の行に沿って、.replace(',',', ')またはすべての引数に対して何かを行うことができます。.replace(',',',=')これらのうちの1つがうまくいくはずだと思います。

于 2013-06-26T19:11:03.420 に答える