問題タブ [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.

0 投票する
1 に答える
996 参照

c++ - ビルド済みライブラリをプロジェクトに導入するための Boost.Build のベスト プラクティス

現在、プロジェクトに外部のビルド済みライブラリを導入するために、次のように「lib」を使用しています。

プロジェクトで ace_lib_static を適切に使用するには、ブロックをプロジェクトの jamfile にコピーする必要があります。ファイル名、検索ディレクトリ、インクルード ディレクトリ、およびマクロを定義することに注意してください。これは VC 8.0 専用です。他のコンパイラのサポートを追加すると、ブロックはさらに大きくなります。

boost.build に外部のビルド済みライブラリを導入するより良い方法はありますか? 理想的には、プロジェクトの jamfile が参照できる別個の jamfile を用意し、それをプロジェクトで使用できるように数行追加する必要があります。

0 投票する
1 に答える
5400 参照

boost - Boost.Buildが呼び出すg++コマンドラインを確認する方法(1.33.1)

自分のマシンでBoostライブラリをビルドしたときに、インポートライブラリが生成されない理由を理解しようと頭を悩ませています。より具体的には、DLLの構築は正常に機能しますが、以前(つまり、マシンを再インストールする前)にインポートライブラリを正しく生成していました。

いくつかの仕様:

  • ブースト1.33.1
  • Windows用のg++4.3.3TDM-1リリース
  • gccMSDosコマンドラインプロンプトからのツールセットを使用したビルド
  • UnxUtils(14-04-03以降)

bjam.exeを呼び出すコマンドラインは次のようになります。

これは以前は素晴らしく機能し、目的のファイルを作成していましboost_thread.libたが、現在はそうではありません。私は本当に何が起こっているのかわかりません。リンカがコマンドラインで何を受け取るのか、そしてリンカがそれで何をすべきだと考えているのかを正確に知りたいのです。

ありがとう、

カール

0 投票する
3 に答える
2381 参照

c++ - C ++のメイクファイルジェネレーター?

次のビルド システムを実行します: cmake、jam、bjam も qmake のように makefile を生成しますか? MS Visual C++ が make ファイルを生成するために使用するユーティリティは何ですか?

0 投票する
1 に答える
3502 参照

boost - bjam を使用した簡単なインストール

私はboost.build初心者ですが、bjamはほとんどのコンパイルタスクで非常に使いやすいですが、システムにアプリケーションをインストールするという、本当に簡単なはずのことを行う方法がわかりませんでした。

ツリーに 2 つのファイル (Jamroot 以外) を持つ非常に単純なプロジェクトがあるとします。

  • hello.cpp : /etc/hello.conf の内容を出力すると言う C++ プログラム

  • hello.conf : デフォルトの hello.conf

私がやりたいことは次のとおりです。

  • システム全体に何もインストールせずに、hello.cpp をコンパイルしてリンクできるようにする
  • インストール ターゲットで呼び出された場合 (その場合のみ):
    • 実行可能な hello を /usr/bin にコピーします
    • hello.conf を /etc にコピーします。

以下は、私が書き始めた bjam です。

私の問題は、ユーザーとして /etc にも /usr/bin にも書き込めないことです。bjam を入力するたびにではなく、明示的にインストール ターゲットを呼び出すときにのみこれを実行したいのです。

構築段階はユーザー権限を使用して実行し、インストール段階は管理者権限を使用して実行する必要があるため、インストール段階と構築段階を分離することは非常に重要です。

0 投票する
1 に答える
1236 参照

boost - C++ boost ライブラリのインストール時に bjam が使用するコマンドを変更する

ブースト ライブラリのインストールを少し遅くしようとしています。短時間に gcc の呼び出しが多すぎて、CPU 温度が限界まで上昇し、システムがクラッシュするためです。

これを /etc/site-config.jam に追加します

ただし、次のエラーが発生します。

$ ./bjam install
/etc/site-config.jam:5: キーワードの構文エラー。
/etc/site-config.jam:5: ロード
ルールでスリープ 10; モジュール pch で g++ が不明です。
/tmp/boost_1_40_0/tools/build/v2/kernel/modules.jam:283: インポート
中 /tmp/boost_1_40_0/tools/build/v2/tools/gcc.jam:19: ロード中
/tmp/boost_1_40_0/tools/build /v2/kernel/modules.jam:283: インポート
/tmp/boost_1_40_0/tools/build/v2/build/toolset.jam:37: toolset.using
/tmp/boost_1_40_0/tools/build/v2/build/project内.jam:874:
project-config を使用中.jam:12: modules.load
/tmp/boost_1_40_0/tools/build/v2/build-system.jam:241 内: load-config
/tmp/boost_1_40_0/tools/build 内/v2/build-system.jam:407: ロード構成ファイル内
/tmp/boost_1_40_0/tools/build/v2/build-system.jam:538: ロード
中 /tmp/boost_1_40_0/tools/build/v2/kernel/modules.jam:283: インポート中
/tmp/boost_1_40_0/tools/build /v2/kernel/bootstrap.jam:138: ブーストビルド
内 /tmp/boost_1_40_0/boost-build.jam:16: モジュールスコープ内

どうすればこれを解決できますか?

0 投票する
1 に答える
1184 参照

c++ - Bjam: 特定のライブラリを無視する

Visual Studio を使用すると、「特定のライブラリを無視」することができます ([プロジェクト プロパティ] > [構成プロパティ] > [リンカー] > [入力] > [特定のライブラリを無視])。

これはプロジェクトで役立つことがわかりました。次に、boost-build (bjam) を使用してそのプロジェクトをビルドしたいのですが、リンカーの動作を再現する必要があります。

bjam でライブラリを無視する機能はありますか?

0 投票する
1 に答える
14354 参照

boost - スレッド例の静的コンパイル

Boost C++ ライブラリを次のようにコンパイルしました。

エラーなし。次に、次のソースをコンパイルしました。

使用:

Boost ライブラリが にあるため、プログラムは正常にコンパイルおよび実行されました/usr/local/lib/usr/local/libから削除する/etc/ld.so.conf.d/libc.confと、次のエラーが発生しました(驚くことではありません):

Thread.cppBoost へのリンクを静的にコンパイルするにはどうすればよいですか? 私は次のことを試しました:

次の Boost ライブラリがインストールされています。

次のコンパイル エラーが表示されます。

何か案は?

0 投票する
1 に答える
707 参照

python - ブーストビルドによるブーストユニットテストフレームワークへのリンク

ブーストビルドを使用して、jamfileでこれを使用してブーストPythonライブラリにリンクできる場合:

プロジェクトmyProject:要件/ boost / python // boost_python;

ブーストテストにリンクするにはどうすればよいですか?ブーストテストライブラリを作成しました。

コードは移植可能であるため、ファイルパスを使用したくありません。ありがとう

Si

0 投票する
1 に答える
2966 参照

linux - bjamを使用した共有ライブラリの構築と使用

ubuntuでbjamを使用して、c ++共有ライブラリを構築し、実行可能ファイルで使用しようとしています。静的としてリンクされないため、共有としてビルドする必要があります(未定義の参照が多数発生します)。それはいいです。

2つの関連する問題:

1)Jamfilesの階層を使用して、私のexeプロジェクト(testServerHub)は共有ライブラリ(pythonManager)に依存しています。exeのJamfileは次のとおりです。

そして、これが私のlib Jamfileです:

'bjam pythonManager'を実行すると、pythonManager共有ライブラリがビルドされ、プロジェクトのlibフォルダーにコピーされます(最後のインストールコマンドによって)。ただし、「bjam test」を実行すると、testServerHubとpythonManagerの両方がビルドされますが、libpythonManager.soはプロジェクトのlibフォルダーにコピーされません。インストールコマンドは実行されません。

2)さて、一時的な回避策として、最初にlibpythonManager.soをビルドしてから、testServerHub実行可能ファイルをビルドします。コンパイルとリンクの両方。実行時に、実行可能ファイルはlibpythonManager.soを見つけることができないことについて文句を言います。ランタイムリンカーは私のプロジェクトのlibフォルダーを知らないので、それほど驚くことではありません。共有ライブラリの特定のディレクトリを検索するように指示するにはどうすればよいですか?または、インストールコマンドが依存ライブラリのビルドに影響を与えない場合、libpythonManager.soを/ usr / local / libにインストールするにはどうすればよいですか?

どうもありがとうございます

Si

0 投票する
2 に答える
1591 参照

c++ - ブースト、bjam、およびシンボリック リンク

bjam でいくつかの Boost ライブラリを生成したところ、多くのシンボリック リンクが取得されました。

date_time の場合:

libboost_date_time-gcc41-mt-1_39.a

libboost_date_time-gcc41-mt-1_39.so -> libboost_date_time-gcc41-mt-1_39.so.1.39.0

libboost_date_time-gcc41-mt-1_39.so.1.39.0

libboost_date_time-gcc41-mt.a -> libboost_date_time-gcc41-mt-1_39.a

libboost_date_time-gcc41-mt.so -> libboost_date_time-gcc41-mt-1_39.so.1.39.0

.a と .so を取得しないのはなぜですか? なぜこれらの 3 つのシンボリック リンク ? また、元のファイルの .so の名前が非常に複雑で、リリース バージョンが 2 回言及されているのはなぜですか?

ただ持つことはできませんか:

libboost_date_time-gcc41-mt-1_39.a libboost_date_time-gcc41-mt-1_39.so

手伝ってくれてありがとう。これらのシンボリック リンクをどうすればよいかわかりません。

注:私はLinuxの初心者です。