問題タブ [gnu-make]
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.
makefile - デバッグおよびリリース ビルド用にメイクファイルを構成するにはどうすればよいですか?
プロジェクト用に次のメイクファイルがあり、リリースおよびデバッグ ビルド用に構成したいと考えています。私のコードには多くの#ifdef DEBUG
マクロが配置されているので、このマクロを設定して-g3 -gdwarf2
フラグをコンパイラに追加するだけです。これどうやってするの?
明確にするために、私がリリース/デバッグ ビルドと言うとき、メイクファイル内のものを手動でコメントアウトすることなくmake
、リリース ビルドまたはデバッグ ビルドを入力して取得できるようにしたいと考えています。make debug
build - gmakeとmakeの違いは何ですか?
「gmake」と「make」の違いを理解しようとしていますか?
私のLinuxボックスでは、それらは同一です。
これはすべてのプラットフォームで同じではないと思いますか?どちらか一方を使用する正当な理由はありますか?
2つの名前がある理由には歴史的な意味がありますか?
build-process - 複数のルールへの依存関係として指定された場合、ターゲットを再実行します
次の GNU makefile があります。
ターゲット 'd' を 2 回実行したいと思います。これは、b と c の両方で依存関係として指定されているためです。残念ながら、ターゲット 'd' は 1 回しか実行されません。実行中の make の出力は、'HI HI' ではなく単に 'HI' になります。
どうすればこれを修正できますか?
ありがとう!
明確にするために、目標は次のようなものです。
build-process - 複数のルールが同じ偽依存を指定し、依存は 1 回だけ実行されます
以下の GNU makefile の例について質問があります。
make を実行すると、サブディレクトリごとにターゲット 'prepare' を指定してからターゲット 'build' を指定して make が呼び出されることを期待しています。残念ながら、$(subdirs) ターゲットは 1 回実行されます ('prepare' ターゲットを作成します) が、'build' ターゲットに対して再度実行されることはありません。
ルール x の場合、make は $(subdirs) ターゲットを実行する必要があると判断しますが、ルール y の場合、$(subdirs) ターゲットは最新です。
これを修正する方法はありますか?
ありがとう!
build-process - ターゲット/依存関係としての Win32 パス
win32 パス名を含むターゲット/依存ファイルを持つ GNU メイクファイルを作成することは可能ですか? 現在、GNU make の win32 3.81 バージョンを使用していますが、ドライブ文字に問題があるようです。例えば:
上記の makefile スニペットはエラーを生成します。具体的には、次のとおりです。
この問題の解決策はありますか?
ありがとう!
recursion - 再帰的なgmakeの質問
すべてのプロジェクトをビルドするための簡単なmakefileを作成する必要があります。これはC++コードで、gmakeを使用しています。
ディレクトリのリストがあるとしましょう。それぞれにcdして、gmakeコマンドを発行し、成功した場合は次のディレクトリに移動します。
gmakeのマニュアルを見て調理しました
これは「すべて」のターゲットに対して機能します。gmakeと入力するだけで、正しい動作をします。しかし、gmake cleanを実行しても、何も実行されません。
私は行くにつれてgmakeを学んでいるので、私は確かにここで愚かなことをしています:)
助けてくれてありがとう。
makefile - gmake はディレクトリ内のすべてのファイルをコンパイルします
make ファイルを作成するために必要な C++ コードがいくつかあります。.h と .C の各ペアがオブジェクトを作成し、いくつかのオブジェクトがリンクされて実行可能ファイルを形成します。かなり標準的なもの。
この非 gnu の make コマンドは、すべてのファイルをディレクトリ内のオブジェクトにビルドするだけです。
これが行うことは、各 %.C ファイル (つまり、すべての .C ファイル) に対して、対応する .o ファイルを構築することです。
gmakeでこれを行う方法を知っている人はいますか?
乾杯
マーク
makefile - GNU Makeでフラットなオブジェクトファイルディレクトリ構造出力
GNU Make を使用した C++ の小さなプロジェクトがあります。次のソース ファイルを有効にしたいと考えています。
次の出力構造に変換します (この時点では重複については気にしません)。
残念ながら、.o と .d を各 .cpp のすぐ隣に置きます。
私は $(notdir ...) 関数を認識していますが、この時点でそれを使用してオブジェクトをフィルタリングしようとする試みは失敗に終わりました。誰でもこれに光を当てることができますか?それはかなり合理的なことのように思えます。
makefile - GNU Make とワイルドカード - 不足しているファイル
次のタイプのルールを含む Makefile があります。
このgenerate-images
スクリプトは、HTML ファイル (標準出力) だけでなく、いくつかの .png ファイルを現在のディレクトリに書き込みます。ここでの目標は、それらを .gif に変換することです。(実際にはありませんが、これは例です)
これは、直接呼び出すと機能します。問題は、依存関係がある別のルールから呼び出すとfoo.html
、ワイルドカード ステートメントがファイルを見つけられないことです。つまり、make
引数なしで呼び出されただけであり、これは私がここで望んでいるものではありません。
ワイルドカードとの取引は何ですか?または、これを行うより良い方法はありますか?
build-process - parallel makeで使用される負荷平均は何を表していますか?
WindowsでGNUmakeを使用すると、負荷平均値は正確に何を表しますか?
例えば:
2.5はどういう意味ですか?