問題タブ [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.
android - Cygwin と NDK で「エラー: 有効な GNU Make 実行可能ファイルが見つかりませんでした」
私はNDKが初めてです。(Windows を使用)。cygwin と NDK をダウンロードしました。で NDK を解凍しましたC:\
。cygwin を実行すると、NDK ディレクトリに移動し、コマンドを実行します
しかし、私は得る:
GNU make 3.81 をダウンロードしましたが、まだうまくいきません。
GNU Make と何をしなければならないのですか? 特別なディレクトリに置くか、PATH に追加する必要がありますか?
makefile - GNU Make 3.80 eval バグの回避策
Makefile の一般的なビルド テンプレートを作成しようとしています。これは、eval ドキュメントで説明されているようなものです。
GNU Make 3.80 で既知のバグに遭遇しました。$(eval) が 193 文字を超える行を評価すると、Make は「Virtual Memory Exhausted」エラーでクラッシュします。
問題を引き起こすコードは次のようになります。
この Makefile を実行すると、
予想される出力は、./src/test/ 内のすべての .c ファイルが (暗黙の規則によって) .o ファイルにコンパイルされることです。
問題は、$$($(1)_SRC_FILES) と $$($(1)_OBJ_FILES) が一緒になって 193 文字を超えることです (十分なソース ファイルがある場合)。
.c ファイルが 2 つしかないディレクトリで make ファイルを実行しようとしましたが、正常に動作しました。エラーが発生するのは、SRC ディレクトリに多数の .c ファイルがある場合のみです。
GNU Make 3.81 でこのバグが修正されていることは知っています。残念ながら、作業中のシステムに新しいバージョンをインストールする権限や能力がありません。私は3.80で立ち往生しています。
それで、何か回避策はありますか?$$($(1)_SRC_FILES) を分割して、eval 内で各依存関係を個別に宣言することはできますか?
makefile - VPATHを使用したMakefileのトリックとインクルード
私はmakeファイルとVPATH変数で遊んでいます。基本的に、私はいくつかの異なる場所(VPATHで指定)からソースファイルを取得し、必要な.oファイルのリストを使用して現在のディレクトリにコンパイルします。
これまでのところ、依存関係情報を「.depend」というファイルに生成し、それを含めています。Gnumakeは、これまでに定義されたルールを使用して、含まれているファイルが存在しない場合は作成しようとします。これで問題ありません。基本的に、私のmakefileは次のようになります。
さて、本当の質問ですが、.dependファイルの生成をなんらかの方法で抑制できますか?私は現在、クリアケース環境で作業しています->遅いので、依存関係情報を更新するときに、もう少し制御できるようにしたいと思います。
makeを実行する前に.dependファイルにアクセスするスクリプトで物事をラップすることができるので(したがって、どのソースファイルよりも新しいものにする)、多かれ少なかれ学術的な演習ですが、どういうわけか私ができるかどうかを知ることは興味深いです'pure'makeを使用して抑制します。
VPATH解決を行うために変数に依存しているため、ソースファイルへの依存関係を削除できません(つまり、単にを使用します.depend:
) 。$^
ディレクティブが更新された結果として依存関係のみを更新する方法があれば#include
、もちろんそれはさらに良いでしょう..しかし、私はそのために息を止めていません.. :)
linux - このプロジェクトをビルドするには?
私はビジュアル スタジオの開発者として長い間働いており、Linux/Unix の世界がどうなっているかを理解しようとしています。source forge でオープンソース プロジェクト ( Gcomandos ) を見つけてビルドしてみました。ソースをダウンロードすると、次のファイルが取得されます。
私は今迷っています。.am または .in ファイルを作成しようとしましたが、GnuMake は何も作成しないと言います。シェル スクリプトを実行しようとしましたが、エラーが発生しました。任意のガイダンスをいただければ幸いです。
makefile - サブディレクトリで失敗し、ビルドを停止しないようにします
makeが多数のサブディレクトリを通過し、それらのディレクトリ内で作成する設定があります。失敗した場合はすぐにビルドを停止したいと思います。以下のコードスニペットはこれを示しています。誰かが私にmakefileの設定方法や、トップレベルからサブディレクトリまでの構築に関するドキュメントを正しい方向に向けることができますか?
makefile - GNUの再帰的ワイルドカードは作成しますか?
使ってから久しぶりmake
ですので、ご容赦ください...
flac
.FLACファイルを含むディレクトリがあります。mp3
MP3ファイルを含む対応するディレクトリがあります。FLACファイルが対応するMP3ファイルよりも新しい場合(または対応するMP3ファイルが存在しない場合)、一連のコマンドを実行してFLACファイルをMP3ファイルに変換し、タグをコピーします。
キッカー:flac
ディレクトリを再帰的に検索し、対応するサブディレクトリをディレクトリに作成する必要がありますmp3
。ディレクトリとファイルの名前にはスペースを含めることができ、UTF-8で名前が付けられます。
そして、私はこれを推進するために使用したいと思いますmake
。
makefile - GNU make: ジョブの数はシステム内の CPU コアの数と同じであるべきですか?
GNU make のジョブ数がコア数と等しいかどうか、または他のジョブが「動作」している間にキューに入れることができるジョブを 1 つ追加することでビルド時間を最適化できるかどうかについて、いくつかの論争があるようです。 .
クアッドコアシステムで使用する方が良いです-j4
か?-j5
どちらかをサポートするベンチマークを見た (または行った) ことはありますか?
cmake - GNU MakeでのCMakeの使用:正確なコマンドを確認するにはどうすればよいですか?
私はGNUMakeでCMakeを使用しており、すべてのコマンド(たとえば、コンパイラーの実行方法、すべてのフラグなど)を正確に確認したいと考えています。
GNU makeには--debug
ありますが、他のオプションはありますか?CMakeは、デバッグ目的で生成されたMakefileに追加のフラグを提供しますか?
gnu-make - 親ディレクトリの Gnumake の動作が異なるのはなぜですか?
親ディレクトリからgnumakeを実行すると正しく動作しないのに、サブディレクトリにcdしてgnumakeを実行すると正しく動作する理由に困惑しています。
親メイクファイルには、次のようなルールがあります。
上記の最後の行でも、同じ失敗で次のように試しました。
トップレベルから同じことを行うのとは異なる結果が得られます
サブディレクトリ makefile に入り込み、正しく動作しない原因となっている親 makefile の何かがありますが、それを見つける方法がわかりません。
私が見る症状は、zlib のサブディレクトリ構成で生成された makefile ルールが依存関係を見逃しており、最初に .o(s) を生成せずにこの結果が直接 ar に送られることです。
正しく動作する zlib ディレクトリからの場合: