問題タブ [boost-program-options]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Boost::Program_Optionsで構成ファイル構文「キー値」をサポートする方法は?
デフォルトの構成ファイルの構文は「key=value」です。構成ファイルの構文「キー値」をサポートするにはどうすればよいですか?
c++ - boost::program_options : プログラムの説明テキストを追加する方法
options_description を印刷するときに、許可されたオプションの説明の前にテキストを印刷したいと思います。何かのようなもの :
現在、私は手でそれを追加します:
これを options_description オブジェクトに直接格納することは可能ですか?
c++ - boost-program-options:値のないオプションの通知
解析されたオプションにnotifierを使用できるのは、それらにvalue_semanticがある場合のみです。値のないオプションを特定の通知機能によって自動的に処理するための最良の方法は何ですか?
簡単なアプローチは、暗黙の代入を使用してダミーのvalue_semanticを作成することです。これにより、ユーザーは値なしでオプションを渡すことができます。これにより、値が明示的に提供される可能性があります。値が提供されているかどうかの実行時チェックを追加して、エラーをスローすることができます。
更新:ただし、位置オプションの値は値なしオプションの後に続く可能性があるため、これは位置オプションの存在下では機能しません。これは、与えられた値として例外を発生させるためです。
c++ - ブースト プログラム オプションの構文
コマンドライン引数からユーザーの入力を読み取るために、boost::program_optionsを使用しています。それは非常にうまく機能し、役立つ使用法メッセージを出力し、入力を適切に検証することができます。ただし、デフォルトでは、長いオプション名は二重ダッシュの後に来る必要が--my_long_option
あり、短いオプションは単一のダッシュの後に来て、単一の文字でなければなりません。-m
.
どちらにも方法はありますか...
- 単一の
-
?の後に長いオプションを許可する - 短いオプションに複数の文字を含めることを許可しますか?
したがって、次のようなコマンドラインを使用できます
2 つの可能性は同じ効果を持つはずですが、プログラミングの観点からは最初の方が優れています。boost::program_options::command_line_styleを見てみましたが、必要なことを実行できるようには見えません。
ありがとう
編集:以下の受け入れられた回答にさらに、そのスタイルを使用するには、次のコードを追加する必要があります(ブーストドキュメントの命名規則に従って)
c++ - Cygwin でブースト プログラム オプションを使用するとハングする
Linux から Windows 上の Cygwin に C++ プログラムを移植してきましたが、Boost Program Options (Boost 1.43) に問題があります。このプログラムは、Linux (Boost 1.44) では正常にコンパイルおよび実行されますが、Cygwin ではハングします。
何か案は?必要に応じて、さらに情報を提供できます。(私が推測しなければならなかった場合、ここでは CPU 使用率が 0% であるため、I/O がブロックされています)
c++ - プログラムが実行時に libboost_program_options.so.1.47.0 を見つけられない
Boost C++ ライブラリをインストールするルート権限がないため、ホーム ローカルにインストールしました。コンパイルするとき、私は以下を使用しました:
g++ -I/home/name/local/boost_1_47_0 -L/home/name/local/boost_1_47_0/stage/lib foo.cc -o foo -lboost_program_options
しかし、実行時には次のようになります。
error while loading shared libraries: libboost_program_options.so.1.47.0: cannot open shared object file: No such file or directory
そしてlddは次のように与えます:
libboost_program_options.so.1.47.0 => not found
ライブラリの絶対パスも指定しようとしましたが、どちらも機能しません。
g++ /home/name/local/boost_1_47_0/stage/lib/libboost_program_options.so.1.47.0 -I/home/name/local/boost_1_47_0 -L/home/name/local/boost_1_47_0/stage/lib foo.cc -o foo
c++ - 私はブーストライブラリ(特にboost_program_options)で迷子になっています
こんにちは、私は一日中壁に頭をぶつけてきました。
そのため、プログラムを大学のスーパーコンピューターに移動したいのですが、ブーストがありません(そして、コードでブーストprogram_optionsを使用しました)。私のPCには、-lboost_program_optionsがあり、これは正常に機能しますが、明らかに機能しなくなります。
したがって、スーパーコンピューターでコンパイルできるように、必要なものをコードと一緒にパッケージ化する必要があります(Intel icpcを使用)
私の最初のハードルは、ブーストヘッダーを含めたいコードを含むmakefileの行をコンパイルすることでしたが、コードフォルダーで次のコマンドを実行しました。
そして、結果のファイルを私のインクルードディレクトリに置きます。それを解決しました。
残念ながら、ブーストプログラムオプションはヘッダーのみのパッケージではないので、何か他のものが必要です。図書館か何かを手に入れる必要があります。コンパイラがmakefileの最後のタスクに到達するとエラーが発生するため(すべてのオブジェクトファイルを実行)
私の旅行で私はこの質問を見つけました:
extractin / building boost program_options
答えが示唆することを試しましたが、コマンドに「build」を入れても余分なファイルは生成されません...
今は完全に立ち往生しています、このライブラリのものを取得する方法がわかりません。頭が回転しているbjamについてたくさんのことを読んだのですが、頭の中ですべてを処理するための理解のレベルがありません。
OS:Linux両方のシステム
c++ - Boostprogram_optionsに似ているが*キーボードショートカットの自動生成ヘルプ*用のc++ライブラリ/ソースはありますか?
だから、私は次のようなキーバインディングを持ついくつかのc++ソースを持っています:
私はいつも愚かなキーが何であるかを忘れて推測しなければならず、それらが変更されたり、新しいキーが追加されたりする可能性があります。カットは?誰かがboost::program_optionsを知らないが答えることができる場合、その例を次に示します。
したがって、実行可能ファイルの使用方法を知るために「RTFC」を実行する必要はありません。「。/ myapp --help」と言うだけで、boostには自動生成されたヘルプなどがあります。キーストロークがコマンドラインフラグの役割を置き換えるキーボードショートカットマッピングのようなものはありますか?(C ++ではそうです。原則としてCもOKですが、ブーストのものと同じくらいエレガントであるとは思えません。)
c++ - ブースト プログラム オプション parse_config_file
アプリケーションの設定をブースト program_options の方法で (ファイルに) 保存したい
これが私の機能です
残念ながら、次のエラーが表示されます。
どうすればこの問題を解決できますか?
c++ - Boost.program_options でタイプミスを検出するにはどうすればよいですか?
boost.program_options ライブラリを使用します。この単純化されたケースを考えてみましょう。
そのようなコマンドラインでエラーを生成したい:
ユーザーが「-c」ではなく「c-」とタイプミスしたことに注意してください。しかし、パーサーはこれを単一の -u オプションとして認識します。このような場合はどのように処理すればよいですか?