C++ では、すべてのコンパイル手順を記述するシェル スクリプトを使用して、同じ結果を得ることができます。だから私の質問は:
メイクファイルを使用する正当な理由はありますか?
これを示す例はありますか?
makefileを使用する主な理由の1つは、最後にプロジェクトをビルドしてから変更されたソースファイルのみを再コンパイルすることです。これを行うためのシェルスクリプトを作成するには、makefileを作成するよりもはるかに多くの作業が必要になります。
例について-C/C++で書かれたほとんどのGNUプロジェクトを参照してください
シェルスクリプトを書いたとしましょう。それはうまくいき、あなたは幸せになるでしょう。機会があればいつでも使い続けられます。パラメータを追加して、オプションを指定できるようにします。また、常にすべてを再コンパイルしていることにも気付くでしょう。そのため、変更されたファイルのみを再コンパイルするように、よりスマートにしようとします。実質的には、独自の make システムを作成することになります。
正当な理由があれば大丈夫です。例: 既存の make ソリューションは X をうまく機能させないため、その問題を解決するために作成しました。
ただし、既存の make システムでは解決できない問題はありません (または、少なくとも、そうではないように思えます :) )。あなたが解決しようとしている問題は、すでに解決されています。解決策を読んで使用するだけです-メイクファイル:)
ですから、あなたの質問に答えると、はい、たくさんあります。そのほとんどは、機能が必要になるまで気付かないものです。あなたがそうするとき、あなたはそれがあなたが望むことをすでに行っていることに感謝するでしょう.
これは、コードでライブラリを使用する場合に適用するロジックと同じです。
autotools を参照してください。は Makefile を作成しますが、コードの移植性にも役立ちます。ただし、自動ツールが構成ファイルを作成するために使用する比較的単純なテンプレート ファイルをいくつか作成する必要があり、エンド ユーザーは ./configure [options]; を実行できます。作る。これらは、エンド ユーザーが期待する多くの機能をメイクファイルに提供します。良い紹介については、http: //www.freesoftwaremagazine.com/articles/brief_introduction_to_gnu_autotoolsを参照してください。