問題タブ [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.
gcc - 変更されたヘッダー ファイルを含むソース ファイルを Makefile で自動的に再構築するにはどうすればよいですか? (C/C++ の場合)
私が取り組んでいるプログラム (実際にはカーネル) を構築するために使用する次の makefile があります。それはゼロからであり、私はプロセスについて学んでいるので、完璧ではありませんが、この時点でメイクファイルを書いた経験のレベルには十分強力だと思います.
この makefile に関する私の主な問題は、1 つまたは複数の C ファイルに含まれるヘッダー ファイルを変更すると、C ファイルが再構築されないことです。すべてのヘッダー ファイルをすべての C ファイルの依存関係にすることで、これを非常に簡単に修正できますが、ヘッダー ファイルを変更または追加するたびに、プロジェクトの完全な再構築が事実上発生します。これはあまり適切ではありません。
私が望むのは、変更したヘッダー ファイルを含むC ファイルのみをリビルドし、プロジェクト全体を再度リンクすることです。すべてのヘッダー ファイルをターゲットの依存関係にすることでリンクを実行できますが、含まれているヘッダー ファイルが新しい場合に C ファイルを無効にする方法がわかりません。
GCCにはこれを可能にするコマンドがいくつかあると聞いたことがあります(そのため、makefileはどのファイルを再構築する必要があるかをどうにかして把握できます)が、実際の実装例を見ることができません。メイクファイルでこの動作を有効にするソリューションを誰かが投稿できますか?
編集:明確にする必要があります。個々のターゲットを配置し、各 target.o にヘッダーファイルを必要とするという概念に精通しています。そのため、どこかにヘッダー ファイルをインクルードするたびにメイクファイルを編集する必要があり、これは少し面倒です。ヘッダー ファイルの依存関係を独自に導出できるソリューションを探しています。これは、他のプロジェクトで見たことがあると確信しています。
windows - 一般的なメイクファイル?
単純な C++ プロジェクトをビルドするために使用できる一般的なメイクファイルはありますか? 窓に?動作中のwiiのmakefileをwin32に変更したのですが、うまくビルドできませんでした(makeの違い?makeアプリとmakefileが見つかったようです)。少しハックして、make として mingw32-make のコピーを作成しました。
-edit- export PATH が原因で古いエラー (make: make コマンドが見つかりません) が発生したようですが、現在新しい makefile (2 ではなく単一のファイル) を使用しています。
"make" make[1]: `/c/nightly/test/test.exe' に対しては何もしません。
これは私の現在のメイクファイル http://pastie.org/318548です
私はmingwを使用しています。そのサイトから、コードブロックを含む別のサイトと一緒にインストールしています。「make」バイナリは、プレフィックスを切り落とした mingw32-make.exe をコピーしたものです。make -hi get "This program built for i686-pc-msys" を実行すると、正しいように見えます
makefile - stange -I make と bad -L による効果
自動ビルドシステムを構築しようとしています。動作中の wii 汎用 makefile を動作中の win32 (mingw32 を使用) makefile に変更するのに少し時間がかかりました。
私のメイクはこちらhttp://pastie.org/319482
奇妙な効果は、ABS_INCL (31 行目) のパスの前にある a を削除すると、ビルドが機能せず、最初のパスで指定されたヘッダーが見つからないというエラーが表示されることです。なぜこれを行うのですか?問題を追跡できません。
次の問題は、libcurl を必要とするコードをドロップしたときです。コンパイルはできますが、期待どおりにリンクできなくなります。ライブラリ(47行目)とパス(53行目)にcurlを追加しましたが、正しくインクルードしているようで、ライブラリは正しい順序になっています(wiiをwin32に変換する間、できるだけ触れないようにしました)そして問題がわかりません。なぜこれが起こっているのか誰にも分かりますか?
ここにテストするための簡単なソースがあります
makefile - 複数の OS 用の makefile を作成します。この make (ext?) は機能しませんか?
mingw32 でビルドする有効な makefile があります。そのメイクファイルの名前を Makefile.w32 に変更しました (ソース -> http://pastie.org/319964 )
今、私は次のような Makefile を持っています。問題は、それが私のソースをビルドしないことです
結果:
Makefile.w32 拡張子が気に入らないようです。ビルドされない理由がわかりません。それは明らかに私の「make Makefile.w32」行に到達しています。
makefile - makefile呼び出しmakefileエラー
私は動作しているメーカーを持っています、私はプラットフォームコードを持っています、そしてフォルダ内の各OSのためのいくつかのメーカーのように。現在、動作するmakefileが1つあります。名前をMakefile.wsに変更し、これをMakefileに書き込みました
私はそれを実行し、このエラーが発生しました
奇妙なことに、クリーンは完全に機能します。次に、「make -f Makefile.w32 mingw32」と書くことにしましたが、正しく機能しませんでした。実際、それはmingw32というフォルダを作成しましたが、これは非常に奇妙だと思いました。
mingw32ルールについては、ビルドに使用されるメイン/通常のルールであると思われるビルドをコピーするだけです。
完全な.w32ソースはここにあります http://pastie.org/320035
makefile - ./configure を実行せずに Makefile を作成する方法はありますか?
テストをスキップして (デフォルトの) Makefile を作成したいと思います。
c++ - C/C++ でプロジェクトのメイクファイルの依存関係を生成する
依存関係が壊れているメイクファイルを含むプロジェクトがあります。各ソース ファイルを手動で、または手書きの perl スクリプトで調べる以外に、makefile で使用できるプロジェクトの依存関係のリストを生成する最もよく知られている方法はありますか?
c++ - Visual Studioでmakefileを使用するにはどうすればよいですか?
makefileと、それらがコンパイルプロセスをどのように簡素化するかについて多くのことを聞きました。VS2008を使用しています。誰かがそれらに対処する方法についてもっと知ることができるいくつかのオンライン参考文献や本を提案できますか?
makefile - この Makefile は何をしているのですか?
私はメイクファイルを初めて使用し、いくつかのメイクファイルを持っています。そのうちの 1 つに、理解しようとしたが理解できないステートメントがあります。
このメイクファイルは何をしているのですか?
アムリ
linux - このビルドシステムは高速化できますか?
私たちのビルドは非常に遅いです。Linux ではネストされた gnu makefile を使用します。同じソース ツリーから 3 つの異なるターゲットに対して 3 つのビルドを作成します。シンボリック リンクを使用して、3 つの並列ディレクトリ ツリーのそれぞれを順番にポイントします。サブディレクトリ内で make を使用して部分的なビルドを行うことで時間を節約できますが、作業が複数のディレクトリにまたがる場合は、3 つのターゲットのうち少なくとも 1 つをビルドする必要があり、最低でも 45 分かかります。サブディレクトリのみのビルドには、5 ~ 10 分しかかからない場合があります。
このビルドシステムを動かなくなっている可能性がある簡単な確認事項を知っていますか? たとえば、シンボリックリンクに代わるより高速な方法はありますか?
追加: 再帰的なメイクファイルに関する論文を見てきました。現在、多くのメイクファイル (約 800) と 450 万を超えるソース コード行がある Makefile システムをフラット化すると、どのような影響があるかを直接知っている人はいますか? 人々は現在、そのディレクトリで make を使用して、現在のサブディレクトリまたはプロセス (組み込みの Linux ターゲット) だけをビルドできることを楽しんでいます。
最近まで、ビルドが 2 倍の長さ ( wince ) だったことを知りました。その時点で、リリース エンジニアは ccache をデプロイしました。