問題タブ [makefile]

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 投票する
4 に答える
24801 参照

makefile - Makefile で「切り替え」を行う良い方法

私は職場で更新されたビルド システムを試しています。現在、ターゲット プラットフォームに応じてコンパイラとフラグを設定する良い方法を見つけようとしています。

私がやりたいことは次のようなものです

これは GNU Make ではサポートされていません。さて、私の最初の考えはただやることでした

これはかなりまともな解決策ですが、ファイル間の違いの概要を把握するのが難しくなります。言うまでもなく、それぞれが一連の変数定義を含む適切な 60 ~ 80 個のファイルを作成して維持することを楽しみにしています。 .

これを達成するためのより良い方法を知っている人はいますか? つまり、別の変数に基づいて一連のフラグやその他のオプションを設定しますか?

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

makefile - Make: $(wildcard) ディレクトリを開いたままにする

そのため、GNU Make の $(wildcard) 関数が Windows でディレクトリを開いたままにしておくと、この問題が発生するようです。(unsnwered) 投稿「make is hold a directory open」を参照してください。Google は、このトピックに関する多くの情報を提供していません。

つまり、Makefile はある時点で $(wildcard) 関数を使用し、ディレクトリを開いたままにします。これにより、通常、「クリーンにする」ルールが正しく機能しなくなります。「make clean」をもう一度実行すると、通常は解決します。

標準の DOS ボックスで GNU Make バージョン 3.81 を使用しています。上記にリンクされた投稿の著者は、Cygwin を使用しています。

誰かがこれに対する修正を見つけましたか?

0 投票する
5 に答える
116521 参照

gcc - gccエラー:間違ったELFクラス:ELFCLASS64

外部のコンパイル済みオブジェクトcoreset.oを使用してプログラムをコンパイルしようとしました。public01.cテストファイルを作成しました。関数はcomputation.cにあり、どちらもコンパイルされます。しかし、それを一緒にリンクすることに失敗しました。何が問題なのでしょう?

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

visual-studio - Visual Studioを使用したGCC?

Visual Studio 2008内からVC++の代わりにGCCを使用するのはどれほど難しいでしょうか?明らかに、一部のキーワードは一致せず、一部は構文が強調表示されない場合があります(新しい言語サービスを作成した場合を除く)。

これは「makefileプロジェクト」の目的ですか?

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

makefile - consoleio.c を対象とするルールがない

最近の問題で、DJGPP は DOS コマンド ラインの文字制限しか受け入れられないことがわかりました。この制限を回避するために、より長い文字列を渡すことができるようにメイクファイルを作成することにしました。メイクファイルをハッキングしてテストする過程で、奇妙なエラーに遭遇しました。メイクファイルは次のとおりです。

実行しようとすると、次のエラーが表示されます。

私が理解できないのは、.c ファイルのルールを見つけようとしている理由です。私が理解していることから、ファイルがそこにある場合は、それを使用するだけです。make で .c ファイルのルールを必要としないようにするにはどうすればよいですか?

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

makefile - エラー時にコマンドラインをエコーするようにQuiet Makeを取得する

長い長いコマンド ラインを含む多くの C ファイルをビルドする Makefile があり、次のようなルールを使用して出力をクリーンアップしました。

@ が発行されるコンパイル行を抑制するので、これは素晴らしいことです。しかし、エラーが発生すると、エラー メッセージだけが表示され、コマンド ラインは表示されません。コマンドラインを発行する「きちんとした」方法を考えられる人はいますか? 私が考えることができるのは、それをファイルにエコーし、より高いレベルでエラーをキャッチしてファイルを猫にすることだけです。ハッキー知ってる。

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

makefile - GNUMake を学ぶためのリソース?

私が取り組んでいる小さなプロジェクトのためにGNUMakeを学ぼうとしています。これまでのところ、「基本的な」チュートリアルでさえかなり大雑把に見え、makefile の構文をまだ理解していません。

まったくの初心者が GNUMake に慣れるための優れたリソースを持っている人はいますか?

0 投票する
5 に答える
7383 参照

shell - 失敗した $(shell) コマンドを中断させる方法

ビルド ルールを適用する前にツールを実行して開始する Makefile があります (このツールが作成してくれます)。Python スクリプトであるこのツールが null 以外のステータス コードで終了した場合、GNU Make をその場で停止し、プログラムのビルドを続行しないようにします。

現在、私は次のようなことをしています(最上位、つまり列1):

しかしcollect_sources.py、ステータス コード 1 で終了しても、これは make を停止しません。これも標準出力をキャプチャしますが、出力collect_sources.pyしないため、間違った方向を見ているような気がします。

可能であれば、単純な MS-DOS シェルが標準のシステム シェルである場合でも、ソリューションは機能するはずです。

なにか提案を?

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

makefile - ルールのコマンド部分で使用される define で使用される条件付きの Makefile の問題

この種の構造を持つメイクファイルのセクションがあります。

ここでは非常に単純化しています。すべてのエコーは実際には重要なコマンドのブロックであり、さらに条件付きのものがありますが、これは私の問題の本質を捉えています。

技術的な理由から、今は入りたくないので、そのサブメイクを取り除く必要がありますが、echo は重要な量のコードを表しているため、bob の本体を単にコピーして貼り付けたくはありません。サブメイク。

理想的には、私がやりたいことはこのようなものです

残念ながら、条件は私を悩ませているようで、「ifdef: コマンドが見つかりません」というエラーが発生します。eval と call のさまざまな組み合わせでこれを回避しようとしましたが、それを機能させる方法を見つけられないようです。

どうすればこれを機能させることができますか? そして、それは問題にアプローチする正しい方法でさえありますか?

0 投票する
7 に答える
145350 参照

makefile - Makefile を 1 つだけ使用してサブディレクトリにソースを含む Makefile を生成する方法

次のような一連のサブディレクトリにソースがあります。

プロジェクトのルートで、次のようなルールを使用して単一の Makefile を生成したいと考えています。

これを試してみると、build/widgets/apple.o のルールが見つかりません。build/widgets/apple.o を作成する必要があるときに %.o: %.cpp が使用されるように何かを変更できますか?