問題タブ [boost-build]
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.
boost - DYN_LNK と USE_DLL と USE_LIB をブースト
次の定義の違いは何ですか:
(正規表現は任意に選択されました)?
libboost*.lib
プロジェクトを、boost*.lib
、boost*.dll
ファイルに自動リンクするのはどれですか? 上記のファイルの違いは何ですか。
c++ - ブースト ビルド: モジュールごとに -Weffc++ を無効にします
さまざまなサブプロジェクトに分割された大規模なプロジェクトにブースト ビルドを使用します。ここに jamroot ファイルがあります:
1 つのサブプロジェクトには、コード スタイルがあまり良くない自動生成コードが含まれています。そこで、このサブプロジェクトの tie -Weffc++ ディレクティブを無効にしたいと思います。サブプロジェクトごとに -Weffc++ を宣言することは可能ですが、このソリューションはあまり好きではありません。なぜなら、どこにでも -Weffc++ を配置したいのですが、(本当に少数の) サブプロジェクトでは無効にします。
サブプロジェクトごとにこのディレクティブを無効にするブースト ビルドの可能性はありますか? または、サブプロジェクトに別のオプションを追加して、既に指定されている -Weffc++ を無効にする gcc コンパイラ オプションはありますか?
python - Boost.Build.V2 の pythonPort の現在の状態
私は現在、好みの C++ 構築ツールとして bjam boost.build を使用しています。しかし、bjam プログラミング言語を使用することは、私にとって非常に難しく、直感的でない場合があります。
これからは、boost.build.V2 マイルストーン 15、「PythonPort」が待ち遠しいです。
しかし、Boost.build マイルストーン 12 の現在でも、boost-build ディレクトリを見ると、ほとんどのジャムに一致する python ファイルが表示されます。
今後、これらのファイルは何のためにあるのか、現在のboost.buildバージョンからbjamでpython拡張機能を使用する方法があるのだろうか?
c++ - MSVC 11(VS 2012)でコンパイルを強化する
Visual Studio C ++ 11でBoost(バージョン1.48.0を試しました)をビルドする方法は?ツールセットが見つかりません。ツールセットvc11をに追加しましたが、メッセージが表示されました。bootstrap.bat
vc11
F:\Programming\boost_1_48_0\tools\build\v2\engine\build.bat
編集: Ferruccio の回答はVS2012ExpressとBoost1.51.0でも機能します。
c++ - MinGW-w64とBoost.Buildを使用したC++ビルド環境
現在、プロジェクトの1つをGCCに移植していますが、x64とx86の両方のサポートが必要なため、これを実現するためにMinGW-w64プロジェクトを使用しています。
ただし、ビルド環境のセットアップで問題が発生しました。私のプロジェクトは現在BoostC++ライブラリを使用しており、ビルドプロセスを簡単にするために、プロジェクトでもBoost.Buildを使用しています(統合が簡単になるため)。
MSVCでは、コマンドラインから次の操作を実行できるため、これで問題ありません。
MinGW-w64は、32ビットと64ビットのツールチェーンが別々のディレクトリに格納されているため、この「問題」を引き起こしています。(それぞれC:\ MinGW32とC:\ MinGW64)。
アドレスモデルフラグに基づいて正しいツールチェーンを選択するようにBoost.Buildを設定することは可能ですか?そうでない場合、私の次善の選択肢は何ですか?
編集:
それが役立つ場合は、MinGW-w64Webサイトの「PersonalBuilds」フォルダーにあるrubenvb4.6.3-1ビルドを使用しています(特に、コードを解析してもらいたいので、これらのビルドを使用していますが、コンパイルはしていません) --Clangの下)。
編集:
私が今考えた解決策の1つは、コンパイル前にPATHが正しいツールチェーンを指すように「手動で」設定することですが、これにより、ビルドプロセスがさらに複雑になり、回避したいと思います。理想的には、MSVCの場合と同じくらい簡単にしたいと思いますが、これは不可能かもしれないと理解しています。最悪の場合、私が提案したものが機能すると思います。Boost.Buildを呼び出す前に、スクリプトを追加してPATHを正しく設定する必要があります。それはパスをハードコーディングすることを意味しますが、私はやりたくありません...
c++ - 「複数定義」エラーを発生させずに複数のクラスでライブラリを使用するにはどうすればよいですか
新しい C++ プロジェクトを開始しており、Boost.Build / bjam を使用したいと考えています。
「複数定義」エラーが発生します。おそらく、jam ファイルが正しく記述されていないか、ヘッダーが正しくインクルードされていないか、ライブラリが適切に記述されていないため、調査していません。
main.cpp は libA を使用します。rest.cpp は libA を使用します。
libA はヘッダー ライブラリです。したがって、コンパイラのmain.cppとrest.cppの両方にlibAのヘッダーを含める必要があり、名前空間などについて文句を言います...
Debian で gcc を使用しています。
ここに私のジャムファイルがあります:
Jamroot.jam
Jamfile.jam
私が得るエラーは次の繰り返しです:
boost-build - Boost Build、ファイルまたはターゲットxが見つかりません
私はこのようなJamrootファイルを持っています。
常に迷惑なエラーを出します
で実行;
まったく助けにはならない。
ディレクトリをフォルダに変更してbjamと入力すると、プロジェクトのその部分が完全にビルドされます。
回避策として、すべてのフォルダーでこれを実行するスクリプトがありますが、「適切な」方法が機能しない理由を知りたいと思います。
次のバージョンのbjamを使用しています
どうもありがとう
bjam - Boost.Build で単体テストのコンパイルを無効にする
Boost.Buildのドキュメントは、テストに関しては非常に簡潔です。
私のプロジェクトのすべてのテストは、unit-test
ルールを使用して定義されています。
ドキュメントで言及されている唯一のプロパティは ですがtesting.launcher
、に設定されている場合にのみテストの実行を無効にできtesting.launcher=true
ます。
unit-test
ルールのコンパイルを完全に無効にする方法は? コマンドラインからプロパティを設定するなど、一時的にそれを行いたいと思います。testing.*
それを行う方法や他のプロパティのリファレンス ドキュメントは見つかりませんでした。
c++ - Boost.Log スタンドアロンをコンパイルする方法
Stack Overflow で部分的に調査を行った後、 Andrey Semashev によるBoost.Logライブラリを試すことにしました。
残念ながら、Boost.Log ライブラリをビルドするには、Boost ソース ツリーに配置し、Boostの一部としてコンパイルする必要があります。私はすでにやや複雑な建物の構成を持っているので、それは私にとってブロッカーです。Boost.Log スタンドアロンをビルドしたい。
Boost.Log フォーラムで興味深いスレッドを見つけましたが、この方法はうまくいきません。
c++ - コンパイル エラーの C++ テスト
私は学生で、課題を提出する前にそれをチェックするために、いくつかのテスト コードを作成して実行しようとしています。私の割り当てでは、クラスごとに独自のプライベートコピーコンストラクターと割り当て演算子を宣言しましたが、これらには定義がないため、何もしません。それらがテスト プログラムで呼び出されると、予期したとおりにコンパイル エラーが発生します。このようなもの:
エラー: 'myClass::myClass(const &myClass)' はプライベートです'
エラー: 'myClass& myClass::operator=(const myClass&)' は非公開です
テスト コードをコンパイルして実行するために try/catch を使用する方法はありますか? 私はもう試した:
しかし、コンパイラはまだ上記のエラーを出しています。これらは「例外」ではありませんか?彼らはスローをトリガーしませんか?
私が try/catch を正しく理解していれば、上記の種類のエラーではなく、実行時エラーを処理します。正しいですか?
さらに調査を行った結果、特定のコンパイル エラーを C++ 内でネイティブにテストする (簡単な) 方法はないようです (考えてみると、これはほとんどの言語に当てはまる可能性があります)。C++ コードのスニペットをコンパイルしてエラーをチェックするスクリプト言語でテスト コードを作成することを提案する投稿と、 Boost.Build の使用を推奨する別の投稿を読みました。
私がやろうとしていることを行うための最も簡単で最良の方法は何ですか?
Boost.Build のドキュメントを見ましたが、ちょっと頭がおかしいです。私がそれを使用した場合、「test.cpp」などのファイルがコンパイルされることをどのようにテストし、「test.cpp」で発生する特定のコンパイル エラーを処理するのでしょうか?
ご協力いただきありがとうございます!
PS これは私の最初の投稿の 1 つです。「十分な」調査を行い、他のすべてを適切に行ったことを願っています。しなかったらごめんなさい。