【发布时间】:2013-06-24 01:58:10
【问题描述】:
我正在编写一个充当 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.")
这可行,将“l,foo”存储在 W 选项中,但 GCC 使用 -W 作为警告标志,我希望将它们与 -Wl 选项分开。
我可以遍历未知参数列表并以这种方式处理它们,但我希望有一个更优雅的问题解决方案。有什么建议吗?
【问题讨论】: