このページを参考にして、ソースからffmpegをインストールしました。 https://trac.ffmpeg.org/wiki/CentosCompilationGuide
このチュートリアルのほとんどがmake distclean
の後にmake install
を呼び出していることに気付きました。ただし、インストール後にlibvpxのみがmake clean
を呼び出します。
このドキュメントによると、 http://www.gnu.org/software/automake/manual/automake.html#Cleanmake clean
は、make
が作成したすべてのファイルを削除し、 make distclean
は、./configure
が作成したすべてのファイルを削除します。
きれいにする
Make allでビルドされたファイルをビルドツリーから消去します。
distcleanを作る
さらに、作成された./configureをすべて消去します。
次のインストールのためにmake distclean
が呼び出されることを理解しましたが、インストール後にmake clean
が呼び出される理由を理解できませんでした。
インストールされたffmpegは問題なく動作します。 Linuxに関する知識を向上させたいだけなので、この質問をしました。誰かが私に説明してくれるととても助かります。
make
の後に使用されるパラメーターは、Makefile
を作成した開発者に依存します。後で参照するドキュメントAutotoolsは、Makefile
を作成するための多くの方法の1つにすぎません。
典型的な標準はmake clean
はすべての中間ファイルを削除し、make distclean
は、構成スクリプトの出力の削除を含めて、ツリーがtarされていない(またはかなり近い)ときと同じ状態にします。これは、たとえばLinuxカーネルが機能する方法です。
言い換えると、それらは各ライブラリの開発者に完全に依存しており、これがclean
であったり、distclean
であったりする理由です。ちなみに、clean
/distclean
を実行する必要はありません。ディスクスペースを節約するためだけに実行しているようです。 make install
は通常、ファイルを宛先ディレクトリにコピーします(これも開発者に依存します)-通常/usr/lib
または/usr/bin
(Autotoolsビルドシステムの場合は、configureスクリプトによっても決定されます)
これらのニュアンスが、人々がRPMやDebianパッケージなどのパッケージ管理システムを使用する主な理由です。
私の理解では、それは単にディスク領域を安全にすることです。いくつかのプログラムをコンパイルすると、たくさんのファイルができます。バイナリでリンクされているため、不要になったオブジェクトファイル。 CPU時間を再度費やすことで、すべてを再作成できます。
現在のffmpeg
コードでこの例を見てみましょう:
git
リポジトリのクローンを作成した後、ソースには53 160 kBが必要ですmake clean
これを53 636 kBに減らしますmake distclean
クローン作成直後のレベルはほぼ53 188 kBです。make clean
_ではなく_make distclean
_を使用する理由ガイドを書いている時点では、libvpxにはターゲットMakefile
のdistclean
にルールがなかったため、代わりにclean
を使用しました。
make install
_の後にmake (dist)clean
が含まれる理由_make distclean
_/_make clean
_は、単に_make install
_の後に含まれています。これは、戻って設定オプションを変更し、再コンパイルするユーザーに「白紙の状態」を提供するための予防策としてのみです。予想よりも頻繁に)。
以前のバージョンのコンパイルガイドでは、予防的な_make distclean
_がないと、これらのユーザーの1人が予期しない結果に遭遇することがありました。
make distclean
_/_make clean
_でエラーが発生した場合はどうなりますか?このような:
_Makefile:198: Makefile: No such file or directory
make: *** No rule to make target '/tests/Makefile'. Stop.
_
またはこれ:
_make: *** No rule to make target 'distclean'. Stop.
_
それを無視します。これは、_make distclean
_を2回実行した可能性があることを意味しますが、これは無害です。