MAKEの初期バージョンはUNIXオペレーティングシステム用に書かれていましたが、GNU Makeを含む他の実装と書き換えが発生しました。 Linuxカーネルの構築に必要です。この実装は、元のバージョンが持っていたすべてのものと、追加の拡張と改善を提供します。
基本的な概念は、アプリケーションを構築するルールを説明する「MakeFile」と呼ばれる特別なファイルを記述することです。各ルールは、他の指定されたルールに依存して、階層を形成する場合があります。通常、ルールはビルドターゲットまたは出力ファイルの形式で存在します。アイデアは、単一のルールが1つ以上の必要な入力ファイルから出力ファイルを作成する方法を定義するということです。このコンセプトは単純に聞こえるかもしれませんが、出力ファイルを作成する必要があるかどうかを評価するために、開発者が独自のシステムを作成する必要がなくなります。 Makeは、必要なチェックを自動的に実行する抽象化レイヤーを提供します。ルールのすべての依存関係は、最後の出力ファイルの生成以降に入力ファイルが変更されたかどうかを判断するために暗黙的にチェックされます。これにより、冗長コンピレーションを省略することにより、ソフトウェアビルドプロセスが加速します。
最も早い後継者の1人はCmakeで、「C」はクロスプラットフォームの立場でした。ソフトウェアを構築するための真のクロスプラットフォームソリューションを備えています。したがって、さまざまなプラットフォームに展開する必要があるプロジェクトではほとんど人気があります。構成ファイルは、コマンドの大きなリストを備えたスクリプト言語で記述できます。
cmakeだけでビルドプロセスを実行できません。 LinuxのMakeFileになるプラットフォーム固有のファイルを作成します。 Windowsでは、Visual Studio互換性のあるプロジェクトファイルが作成されますが、MakeFileの使用など、他のオプションもあります。ただし、Cmakeは、オリジナルメイクの上部にある単なるレイヤー以上のものです。また、CやJavaなどの言語の依存関係を自動的に検出することもできます。これにより、ビルドプロセスがより信頼性が高くなります。cmakeに付属するもう1つのクールな機能は、さまざまな形式でパッケージを作成できることです。展開を考えると、パッケージを作成すると、最後のステップのように聞こえますが、おそらく最も迷惑なものでもあります。このプロセスの定義済みソリューションを持っていると、多くの快適さが得られます。
rake
de facto
標準であり、Ruby 1.9以来、Rakeは標準ライブラリの一部でもあります。「レーキの主な利点は何ですか?」あなたは尋ねるかもしれません。まず、デフォルトでRubyソースファイルを処理できます。さらに、Ruby開発者は、新しい言語やフレームワークを学習する必要がないため、即座に使用できます。ツールのAPIのみが新しくなりますが、残りは馴染みがあり、既知のパターンと原則に従います。最後に、RakeはRubyの高度なパターンマッチングを使用して、ルールのために正規表現をフィルターに形成します。 Rakeでもう少し、SitePointのこの記事をご覧ください。 fake
レーキのアプローチに従う他のビルドツールは多数ありますが、私が強調したいのは偽物です。その理由は簡単です:.NETフレームワーク全体にアクセスできる強力な機能言語を使用します。偽物の背後にあるアイデアを完全に理解するためには、ドメイン固有の言語(DSL)が究極の武器であると思われる時に偽物が作成されたことを知ることが重要です。偽物の基本原則は、おそらくジェイクに非常に似ています。偽物を競合他社と区別するのは、F#パイプオペレーターの使用です。この演算子は、ビルド構成全体に流fluentタッチを与えます。 (.NET)ユニットテストフレームワークとの統合は、(ポスト)ビルドプロセスの重要な部分としてテストを追加します。
node.js環境のためにJavaScriptに記述されたビルドツールを使用すると、良いアイデアのように聞こえます。 node.jsはさまざまなプラットフォームで実行されるため、ビルドツールもこれらのプラットフォームで実行されます。さらに、迅速な実行、同時コールバック、そして素晴らしいデバッグエクスペリエンスの利点が得られます。 SitePointに関する最初の記事で議論したJakeは、Makeによって採用されているが、Rakeのようにパターンマッチングで味付けされた同じルール依存性の概念に従っています。さらに、パッケージング能力があります。これにより、配布用のバンドルを作成するのに役立ち、並列ビルドがサポートされています。
結論最近では、アプリケーションビルドプロセスソフトウェアに多種多様な可能性があります。 Makeは、一部のコンテキストでビルドプロセスを自動化するための最も使用されているプログラムですが、他のアプリケーションは興味深い機能を提供します。
レーキとビルドシステムとしてのメーキの主な違いは何ですか?rakeとmakeはどちらも人気のあるビルドシステムですが、いくつかの重要な違いがあります。 RakeはRubyで書かれており、Rubyプロジェクトでよく使用されます。明確な構文があり、読み書きが簡単です。また、タスクの並行した実行もサポートしています。一方、MakeはCで書かれたはるかに古いシステムです。CプロジェクトとCプロジェクトで広く使用されています。使用するスクリプトであるMakeFilesは、読み書きが難しい場合がありますが、非常に強力で柔軟です。また、タスクの並行した実行もサポートします。
cmakeは、メーキとレーキと比較してどのように比較されますか?構築システム自体であるMakeやRakeとは異なり、CMakeはMakeやVisual Studioなど、他のシステムのビルドファイルを生成します。これにより、さまざまなコンパイラや環境で使用できるため、非常に柔軟で強力になります。ただし、作成やレーキよりも使用する方が複雑になる可能性があります。 ビルドシステムは、コードをコンパイルしてリンクするプロセスを自動化します。これにより、開発者は多くの時間と労力を節約できます。また、ビルドプロセスが一貫していることを保証し、バグやエラーを防ぐのに役立ちます。さらに、ビルドシステムは、多くの場合、タスクの並行した実行をサポートします。これにより、ビルドプロセスを大幅に高速化できます。 プロジェクトに適したビルドシステムを選択するにはどうすればよいですか?使用している言語、プロジェクトの複雑さ、個人的な好みなど、さまざまな要因。各システムの機能、柔軟性、および使いやすさを考慮する必要があります。また、同様のプロジェクトで一般的に使用されているビルドシステムを調べることも役立ちます。 ビルドシステムの並列実行とは何ですか?これにより、複数のタスクを同時に実行できます。これにより、特にマルチコアプロセッサでは、ビルドプロセスを大幅に高速化できます。ただし、ビルドプロセスをより複雑で管理が困難にすることもできます。 ビルドスクリプトとは何ですか?ビルドシステムを使用することの利点は何ですか?
単一のプロジェクトで複数のビルドシステムを使用できますか?単一のプロジェクトの複数のビルドシステム。ただし、これにより複雑さが追加され、ビルドプロセスの管理がより困難になる可能性があります。一般的に、ニーズに合わせて固執する1つのビルドシステムを選択するのが最善です。
ビルドシステムを使用することに不利な点はありますか?いくつかの欠点があります。彼らはあなたのプロジェクトに複雑さを加えることができ、特に初心者向けにセットアップと使用が困難になる可能性があります。さらに、小規模または単純なプロジェクトに取り組んでいる場合、ビルドシステムは過剰になる可能性があります。
新しいビルドシステムを使用することを学ぶにはどうすればよいですか?プロジェクトで使用します。簡単なプロジェクトから始めて、システムにより快適になるにつれて、徐々に複雑さを高めます。また、プロジェクトの途中でビルドシステムを切り替えることはできますか?プロジェクトの真ん中ですが、複雑で時間のかかるプロセスになる可能性があります。ビルドスクリプトを書き換えて、コードを変更する必要があります。一般的に、プロジェクトの開始時にビルドシステムを選択してそれに固執することが最善です。
ビルドスクリプトは、ビルドシステムの指示を含むファイルです。それは、どのようなタスクを実行するか、どの順序でビルドシステムに伝えます。ビルドスクリプトの正確な形式と構文は、使用しているビルドシステムによって異なります。
以上がMake、Fake、Cmake、Rake、Jake:適切なビルドシステムを選択する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。