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

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

scheduling - GNU make での相互排他的なジョブ スケジューリング?

GNU make を使用して、「--jobs」オプションを使用すると、同時にスケジュールされない一連のターゲットを作成できますか?

バックグラウンド:

これをもう少し具体的にするために、次の形式のメイクファイルを検討してください。

私がする必要がある主なことは、e1、e2、および e3 が同時に処理されないようにすることです。これは、リソースが限られている組み込みデバイスで何らかの作業を行うためです。それらの複数のものが同時に実行されている場合、それらはクラッシュします。p1、p2、および p3 は、任意の e* ジョブを含む任意のものと並行して実行できます。

実際のメイクファイルには、約 10 レベルの深さの依存関係ツリーを持つ数千のターゲットがあることに注意してください。そのため、(a) make を連続して実行する必要がなく、(b) の利点を保持する方法があることを願っています。メイクファイルで依存関係ツリーをエンコードします。

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

makefile - GNUがファイルを削除するのはなぜですか

テストを実行するための少しハックなmakefileがあります。

それは機能しますが、Makeに今まで見たことのないことをさせます。私のテストは現在壊れており、バスエラーが発生します。Makeは次の出力を提供します。

最後の行が気になります。Makeがそれをするのを見たことがありません。Makeがコンパイルされたテストを削除するのはなぜですか?

注:この例は、簡単にするためにかなり大幅に編集しました。私はいくつかの間違いを導入したかもしれません。

0 投票する
6 に答える
4663 参照

windows - スペースを含むファイル名でGNUMakeを使用する最も信頼できる方法は何ですか?

GNUMakeを使用して、ディレクトリ構造(Windowsファイルシステム上)にCファイルのセットを構築するルールベースのmakefileを実行したいと思います。

ルートディレクトリ、一部のサブディレクトリ、および一部のファイルにはスペースが含まれています。

サンプルファイル:"C:\Documents and Settings\<username>\My Documents\Test Dir\Build Me.c"

ファイルパスにスペースが含まれている場合、GNUMakeは実際には機能しません。この問題を回避するための可能な方法(ファイル名からスペースを削除する、8.3形式を使用する、スペースを?またはに置き換える\\など)について読みましたが、どれも完璧ではありません(またはそうですか?)

この問題を解決する特効薬はありますか?

ところで、私はGNUMakeで立ち往生しているので、別のmakeツールを使用することはできません。

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

c - GNU make %-style パターン ルールのポータブルな同等物

(現在の) 小さな C プロジェクトで単体テストのサポートを組み込むために、Autotools で Check を使用するページの指示に従っています。Checkの代わりにCgreenを使用していますが。

ステップ 9 で問題が発生しました。これにより automake は、GNU make 拡張である「%」スタイルのパターン ルールの使用について警告を発します。

特定の make 規則は次のとおりです。

gnu make 拡張機能に依存しない、このルールを指定する同等の方法があるかどうか疑問に思っています。

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

makefile - 条件のテストにおける自動変数:GNU Make

私はここで立ち往生しています。2つのmakefileがあります(変更できない要件)

  • defs.mk:ソースファイル名とそれらの追加のコンパイルフラグ(標準フラグを除く)が含まれています。例:
  • Makefile:すべてのルールが含まれています。

次に、次のようにファイル固有のフラグ(およびオプションのファイル固有のデバッグフラグ)を定義できるように、機能を追加します。

ただし、条件内では自動変数の展開がサポートされていないため、これは機能しません。それを行う他の方法はありますか?

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

makefile - メイクファイルでエコーを抑制する方法は?

Makefile に次の PHONY ターゲットがあります

ターゲットを実行すると、実行中のコマンドが表示されます

プロンプト> make install

出力は

好きなように出力

0 投票する
6 に答える
25242 参照

c++ - GCC ビルドの問題 (#include_next limits.h)

しようとすると

私のUbuntuマシンのミドルウェアはこれを取得します

これは、limits.h:125 周辺のコンテンツです。

設定してみた

(これは、システムで別の limits.h を見つけた場所です)。すでに libc6-dev をインストールしていますが、その limits.h が別のパッケージによって上書きされている可能性がありますか? 別の -dev パッケージが必要ですか? または、環境変数が必要です。おそらくこれは他の方法で回避できますか?

0 投票する
4 に答える
3801 参照

makefile - 多くのターゲット ディレクトリを持つ GNU make

多くの HTML ファイルの生成を既存の .xml ファイルに統合する必要がありますMakefile。問題は、HTML ファイルが多くの異なるディレクトリに存在する必要があることです。私の考えは、ソース ファイル (*.st) を対応する html ファイルに変換する暗黙のルールを作成することです。

およびすべての html ファイルに依存するルール

HTML ファイルが builddir にない場合、makeは暗黙のルールを検出しません: *** No rule to make target. 暗黙のルールをそのように変更すると

見つかりましたが、プロジェクト内のほぼすべてのファイルに対して暗黙のルールを設定する必要があります。GNUマニュアルのImplicit Rule Search Algorithmによると、ルール検索は次のように機能します。make

  1. ターゲット名t全体をdと呼ばれるディレクトリ部分とnと呼ばれる残りの部分に分割します。たとえば、tsrc/foo.oの場合、dsrc/であり、nfoo.oです。
  2. ターゲットの 1 つがtまたはnに一致するすべてのパターン ルールのリストを作成します。ターゲット パターンにスラッシュが含まれている場合は、 tと照合されます。それ以外の場合は、n に対して

暗黙のルールが見つからないのはなぜですか? また、GNUmakeが使用されていると仮定すると、最も洗練されたソリューションは何でしょうか?

これは my の簡略版ですMakefile:

0 投票する
6 に答える
9686 参照

makefile - GNU make でエラーと割り込みをトラップするにはどうすればよいですか?

に組み込まれているのと同様にtrap、 GNUで実装する方法があるかどうか疑問に思っていますか?makeBASH

ユーザーが を押した場合CTRL-C、またはそれmake自体が失敗した場合 (ゼロ以外の終了)、特定のターゲットまたはマクロを呼び出したいと思います。