我正在写一个Python脚本,充当GCC的包装器。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选项分开。
我可以遍历未知的args列表并以这种方式处理它们,但是我希望有一个更优雅的解决方案。有小费吗?
翻阅古今
相关分类