opt
はすでに独自の引数を解析しており、すでに位置引数として処理するビットコードファイルを持っているため、複数の位置引数を使用するとあいまいさが生じます。
ドキュメントは、APIをスタンドアロンアプリケーションで使用しているかのように説明しています。あなたはこのような何かあれば、例えば、:
int main(int argc, char *argv[]) {
cl::list<std::string> Files(cl::Positional, cl::OneOrMore);
cl::list<std::string> Files2(cl::Positional, cl::OneOrMore);
cl::list<std::string> Libraries("l", cl::ZeroOrMore);
cl::ParseCommandLineOptions(argc, argv);
for(auto &e : Libraries) outs() << e << "\n";
outs() << "....\n";
for(auto &e : Files) outs() << e << "\n";
outs() << "....\n";
for(auto &e : Files2) outs() << e << "\n";
outs() << "....\n";
}
をあなたはこのような何かを得る:
今
$ foo -l one two three four five six
one
....
two
three
four
five
....
six
....
、次の2つの位置引数の定義の周りに入れ替える、あるいはのcl::OneOrMore
を変更した場合cl::ZeroOrMore
からFiles2
オプションは、エラー
個人的に
$ option: error - option can never match, because another positional argument will match an unbounded number of values, and this option does not require a value!
、私はopt
を使用するときに、私はpositiontal引数を見送るを取得しますumentオプションと、このような何か:私はこれを行うことができます
cl::list<std::string> Lists("lists", cl::desc("Specify names"), cl::OneOrMore);
:
opt -load ./fooPass.so -foo -o out.bc -lists one ./in.bc -lists two
をしてstd::string
リストの上に私が手と同じよう反復:
one
two
Sフラグはパスのオプションではなく、LLVMアセンブリを出力するように選択するオプションです。 – Shuzheng
どのようにして最初の仕事をすることができますか(ポジション)? – Shuzheng
'-mapiWM'オプションについて説明できますか? – hailinzeng