問題タブ [jam]
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++ - Jam と静的ライブラリ
静的リンク用のPlatinum C++ ライブラリをビルドする必要があります。このために jam に提供できるコマンドは何ですか?
c - ' への未定義の参照'
私は大きなコードに取り組んでいます。jam コマンドを使用してコード ベースをコンパイルすると、コード ベースに新しく追加されたヘッダー ファイルの「some_function」への参照が未定義であるという多くのエラーが発生します。このヘッダー ファイルには、他のすべての関連するヘッダー ファイルが含まれます。コードベースをコンパイルする前に、jam ファイルを変更する必要がありますか?
bundlemgr_distrib_im.c:
bundlemgr_distrib_config.h:
bundlemgr_distrib_config.c
ビルドログ:
別のエラー:
bundlemgr_distrib_acc_private.h (新規追加ファイル)
bundlemgr_distrib_db_private.h
bundlemgr_distrib_db_api.c
ビルドログ:
c++ - Jam の使用時に g++ コンパイラの出力を表示するにはどうすればよいですか?
Jam を使用してプロジェクトをコンパイルしていますが、デバッグ レベルをどれだけ高く設定しても、探している詳細が表示されないようです。
g++
の-M
またはフラグを使用-H
して、どのヘッダーが含まれているかを確認したい (特別なディレクトリからシステム ヘッダーを含めたい)、これらが機能することをテストしました。次のようなものが表示されます。
これにより、Jam がなくてもソリューションが正常に機能していることを確認できますが、Jam によって問題が発生していないことを確認したいと思います。
私は試してみjam -d 9 | grep include | grep i686
ましたが、何も表示されません。
ここで何がうまくいかないのでしょうか?生のコンパイラ出力が難読化されているのはなぜですか?
boost - Boost Jam ファイルで複数の静的ライブラリを 1 つの共有ライブラリに結合する
こんにちは、次のプロジェクト階層があります:
-Top
------lib1
----------Jamfile
------lib2
----------Jamfile
----- -ジャムルート
libs:lib1 と lib2 はどちらも静的 libs(.a) であり、Jamfile は次のコマンドで構成されています。
lib $(ライブラリ) : [ glob *.cpp ] : <link>static ;
Jamroot レベルでは、上記の 2 つの静的ライブラリをすべて組み合わせて、単一の共有ライブラリ (.so) を作成する必要があります。lib1.a と lib2.a を組み合わせて、libmain.so を形成する必要があります。
上記の目的を達成するために必要な bjam ステートメントを Jamroot.jam ファイルに記述する方法を教えてください。
macos - jamplus: リンク コマンド ラインが osx に対して長すぎます
jamplus を使用して、ベンダーのクロスプラットフォーム プロジェクトを構築しています。osx では、C ツールのコマンド ライン (clang を介して ld に供給) が長すぎます。
応答ファイルは、長すぎるコマンド ラインに対する古典的な答えです。jamplus はマニュアルで、応答ファイルをその場で生成できると述べています。
マニュアルの例は次のようになります。
もうすぐそこ!C.Link コマンドを具体的に吹き飛ばすと、次のようになります。
私の jamfile では、リンカにパススルーするために必要なコマンド ラインを取得しますが、応答ファイルは改行で終了していないため、リンクは失敗します (osx ld では改行で区切られたエントリが必要です)。
- 改行で結合された jamplus リストを展開する方法はありますか?
$(LIST:TCJ=\n)
運が悪い場合は、結合拡張を使用してみました。$(LIST:TCJ=@(\n))
どちらも機能しません。これができれば、生成されたファイルは正しいはずです。 - そうでない場合、clang のリンク コマンドをオーバーライドし、リストからオンザフライでコンテンツを生成するために、どの jamplus コードを使用できますか? これを処理する最も侵襲の少ない方法を探しています。理想的には、リンクが必要な場所に新しい間接的なターゲットを追加するのではなく、ツールを直接変更/オーバーライドします。
c++ - jamスクリプトのファイル拡張子の変更
jam スクリプトの入力ファイルから拡張子を変更するにはどうすればよいですか。Linuxボックスでは、次の作業コードがあります-
for ループ内の 1 行目は、cpp ファイル名を選択し、その拡張子を から<File>.cpp
に変更し<File>.obj
ます。Windows プラットフォームと互換性のあるこれらの変更を変換する必要があります。ブーストビルドプロセスの一部のモジュールがこれを行う方法を提供していたと思いますが、これでのGoogle検索はあまり役に立ちませんでした.
objName
obj ファイル拡張子を含み、これらの変更がプラットフォーム間 (特に win/linux) で互換性を保つために、上記のコードでどのような変更を行う必要がありますか。
makefile - Makefile からの jam の呼び出しが機能しない
私のメイクファイルでは、別のディレクトリに移動して、次のようなものでジャムを呼び出そうとしていました:
これは機能しませんでしたが、「不明なターゲットです。「Jamrules」を編集してください」という問題が発生しました。コマンドラインでまったく同じコマンドが完全に機能しますが。だから、ジャムがターゲットを見つけることができることを知っています。
私も試しました
同じ結果のバリエーション。また、これはコマンドラインから完全に機能します。
「jam」以外のコマンドは、期待どおりに機能します (ls、ps、cat、pwd)。
更新: <somedirectory> に Makefile を作成してそこでmakeを実行しても、同じ結果が得られます。
なぜこれが起こるのかについてのアイデアをいただければ幸いです。そしてもちろん、試してみること。
最新の gnu make FT-jam 2.5.2 で cygwin を実行しています。
jam - Jam を使用してフォルダを作成する
プロジェクトでジャムを使用して、Visual Studio でのビルドを自動化しています。
サブディレクトリとファイルを $folder から $folder1 に移動しようとしています。$folder にはプロジェクトが含まれています $folder1 は空です。
File を使用してファイルをコピーします。
次のようなファイルをコピーしようとします:
ただし、$folder1 は空であり、フォルダー構造が含まれてい($folder1)\\subdir : ($folder)\\subdir
ないため、$folder1 が空であるため File は何もしません。
存在するかどうかに応じて、Jam にフォルダを作成する方法はありますか?