問題タブ [bjam]
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.
bjam - Boost.Build で単体テストのコンパイルを無効にする
Boost.Buildのドキュメントは、テストに関しては非常に簡潔です。
私のプロジェクトのすべてのテストは、unit-test
ルールを使用して定義されています。
ドキュメントで言及されている唯一のプロパティは ですがtesting.launcher
、に設定されている場合にのみテストの実行を無効にできtesting.launcher=true
ます。
unit-test
ルールのコンパイルを完全に無効にする方法は? コマンドラインからプロパティを設定するなど、一時的にそれを行いたいと思います。testing.*
それを行う方法や他のプロパティのリファレンス ドキュメントは見つかりませんでした。
c++ - -g debugフラグを使用してboostをコンパイルする方法は?
Boostライブラリを再コンパイルしたいのですが、-gを使用してデバッグフラグを有効にします。私は読んでいて、私たちがでブーストを構築していることを確認しましたjam
。make
私はよく知っていますが、jam
いつも私を避けてきました、そして私の欲求不満は高まっています。
c++ - ブースト静的ライブラリを構築するには?
これは機能しますが、ブースト ライブラリの静的バージョンをビルドしません (多分私が間違っているのでしょうか?)
次のコマンドを発行しようとしています:
しかし、うまくいきません。
c++ - Boost1.49.0のビルド中に致命的なエラーC1027
MSVC2010を使用してBoost1.49.0をビルドしようとしていますが、次のエラーで失敗します。
これがそのエラーの最初のインスタンスです。ビルドが中止される前に、ログファイルに同じエラーの995インスタンスがあります。
project-config.jamの内容は次のとおりです。
そして、私が使用したビルドコマンドは次のとおりです。
これを引き起こしているものは何ですか?
cross-platform - JamからCMakeに移行する
Jamが既存のプロジェクトをビルドし、CMakeがビルドするプロジェクトを生成することを理解しています。しかし、JamをそれらのIDEに統合しようとするのではなく、さまざまなIDEで使用できるプロジェクトを生成したいので、JamfileをCMakeLists.txtファイルに変換した経験/成功はありますか?
c++ - Boost.Build/bjam と Qt
Qt 4.8 プロジェクトをコンパイルするために Boost.Build .jamroot ファイルをセットアップしようとしていますが、moc:ed にする必要がある .ui ファイルと .cpp ファイルを無視しているようです。qt4.jam の内部を調べてみて、さらに ECHO: を追加しましたが、どこを見ればよいかわかりません。
たとえば、uic-generator の run メソッドが呼び出されない (init が呼び出される) ようですが、そうすべきだと思います。
私の jamroot ファイルは次のようになります。
私が得る唯一の出力は次のとおりです。
bjam --debug-configuration を実行すると、qt4.jam は Qt インストールのすべての正しいパスを出力します。
調子はどう?Qt 4.8と互換性がないのでしょうか?それとも私の使い方が悪いだけですか?コードはほぼそのままですが、examples/qt の下のファイルから取得されます。
どのように使用できますか?助けてくれてありがとう。
編集: http://nuwen.net/mingw.htmlの MinGW ディストリビューション 9.0 で gcc 4.7 を使用し、Boost 1.49.0 に付属の Boost.Build を使用します。
bjam - コンパイルする前にbjamにスクリプトを実行させる
ビルドする前にbjamにスクリプトを実行させることは可能ですか?もしそうなら、どのように?コンパイルする前にコードにパッチを適用したいのですが、開発者の通常のワークフローを変更したくありません。ありがとう!
visual-studio - 他のディレクトリにある .h ファイルを bjam に見つけさせるにはどうすればよいですか
私はこのソリューションを Visual Studio 2008 で維持していますが、成果物は bjam で作成しています。このソリューションには 3 つのプロジェクトが含まれています。jamfiles は、ソリューションの 2 つのバージョン (A と B など) をビルドするようにセットアップされており、各バージョンの 32 ビットおよび 64 ビットの実行可能ファイルをビルドします。
私の問題は、bjam がソリューション内のプロジェクトの 1 つの .h ファイルを見つけられず、以下のエラーが発生することです。これらの .h ファイルは、「include」フォルダー内の 2 つのディレクトリの上と下の 1 つのディレクトリに物理的に配置されています。
プロジェクトの jamfile がある場所に .h ファイルをコピーすると、エラーはなくなり、ソリューションは完全にビルドされます。ただし、.h ファイルは「include」フォルダーに保持する必要があります。
私の質問は、「include」フォルダーで .h ファイルを探すように bjam に指示するにはどうすればよいですか? 以下は、問題のあるプロジェクトの jamfile と、私の site-config.jam ファイルです。
どんなヒントでも大歓迎です。ありがとう。
ジャムファイル:
c++ - gcovカバレッジ分析のためのBjam?
主に C++ で記述されたプロジェクトに、重要なクロスプラットフォーム ビルド システムを統合しようとしています。私はこれまで Cmake と Scons を評価してきましたが、どちらも (GNU) make よりも改善されていますが、私がこれらのツールを使用しようとしていたコンテキストでは、どちらのアプローチもエレガントでも透過的でもないように見えました。これにより、Boost Build (Bjam) にたどり着きました。私のプロジェクトが Boost に依存していることを考えると、bjam は実行可能なターゲット プラットフォームで既に利用できるはずです。
Jenkins などのビルド サーバーへの最終的な統合を視野に入れて、ライブラリの単体テスト用のコード カバレッジをきちんと統合しようとするのが困難になりました。私は Bjam のベスト/スタンダード プラクティスに進んで従いますが、3 つの異なる「バリエーション」が必要だと思います。
- release - 最適化された静的ライブラリのみをビルドする
- debug - 最適化されていない静的ライブラリと単体テストをビルドする
- カバレッジ - カバレッジ対応のライブラリを構築し、カバレッジ対応でない単体テストとリンクします。
基本的に、標準のデバッグ ビルドとリリース ビルドに加えて、カバレッジ データも収集する特別な目的のデバッグ ビルドが必要です。
(少なくとも) g++ と msvc でビルドする必要があり、gcov スイッチは g++ でのみ使用します。これは、私のライブラリ ターゲットが単体テストの実行可能ターゲットとは異なる "compilerflags" を必要とすることを意味します...そして、私のコンパイラ スイートの 1 つに対してのみ...そして 1 つのバリアントに対してのみです。
Bjam でこれを実現する最善の方法はわかりませんが、かなり一般的な使用例であると思います。Bjam は gcov カバレッジ分析 (おそらく lcov を使用して結果を提示する) を明示的にサポートしていますか? そうでない場合、上記の(単純化された)シナリオをサポートする戦略を誰かが推奨できますか?
boost - 複数のBoost.Buildプロジェクト
Boost.Buildエンジンを使用する2つのプロジェクトがあり、次の構造になっています。
プロジェクト2からプロジェクト1のビルドプロセスをトリガーし、さらにプロジェクト1で生成されたダイナミックライブラリにリンクするにはどうすればよいですか?