Saya menginstal ffmpeg dari sumber dengan bantuan halaman ini. https://trac.ffmpeg.org/wiki/CentosCompilationGuide
Saya perhatikan bahwa sebagian besar panggilan tutorial ini make distclean
setelah make install
. Tapi hanya panggilan libvpx make clean
setelah instalasi.
Menurut dokumen ini,
http://www.gnu.org/software/automake/manual/automake.html#Clean
make clean
menghapus semua file yang make
dibuat, dan make distclean
menghapus semua file yang ./configure
dibuat.
bersihkan
Hapus dari build tree file yang dibangun oleh make all.
buat distclean
Selain itu hapus apa pun ./konfigurasi dibuat.
Saya mengerti bahwa make distclean
dipanggil untuk instalasi selanjutnya, tetapi saya tidak bisa mengerti mengapa make clean
dipanggil setelah instalasi
Ffmpeg yang terinstal bekerja tanpa masalah. Jadi saya menanyakan pertanyaan ini karena saya hanya ingin meningkatkan pengetahuan saya tentang linux. Akan sangat membantu seseorang memberi saya penjelasan untuk itu.
Jawaban:
Parameter yang digunakan setelah
make
hanya tergantung pada pengembang yang menulisMakefile
. Dokumentasi yang Anda rujuk kemudian, Autotools, hanyalah salah satu dari banyak cara untuk membuatMakefile
.Standar khasnya adalah
make clean
akan menghapus semua file perantara, danmake distclean
menjadikan struktur pohon seperti ketika tidak dicabut (atau sesuatu yang cukup dekat) termasuk menghapus semua skrip konfigurasi hasil keluaran. Ini adalah cara kerja kernel Linux misalnya.Dengan kata lain, itu sepenuhnya tergantung pada pengembang untuk masing-masing perpustakaan itu, dan inilah sebabnya kadang-kadang
clean
dan lain kali itudistclean
. By the way, Anda tidak perlu menjalankanclean
/distclean
- Saya kira mereka menjalankannya hanya untuk menghemat ruang disk.make install
biasanya menyalin file ke direktori tujuan (sekali lagi bergantung pada pengembang) - biasanya tempat seperti/usr/lib
atau/usr/bin
(juga ditentukan oleh skrip configure, jika itu merupakan sistem build Autotools)Nuansa ini adalah alasan utama orang menggunakan sistem manajemen paket seperti paket RPM atau Debian.
sumber
Untuk pemahaman saya itu hanya untuk ruang disk yang aman. Setelah mengkompilasi beberapa program Anda akan memiliki banyak file, misalnya file objek yang tidak diperlukan lagi, karena mereka dihubungkan bersama dalam binari. Semua dapat diciptakan kembali dengan menghabiskan waktu CPU lagi.
Ambil contoh ini dengan
ffmpeg
kode saat ini :git
repo, sumber membutuhkan 53 160 kBmake clean
mengurangi ini menjadi 53 636 kBmake distclean
kami hampir berada di level setelah kloning: 53 188 kBsumber
Mengapa langkah libvpx menggunakan
make clean
alih-alihmake distclean
Pada saat penulisan panduan libvpx tidak memiliki aturan
Makefile
untuk targetdistclean
, jadiclean
digunakan sebagai gantinya.Kenapa
make (dist)clean
dimasukkan setelahmake install
make distclean
/make clean
disertakan setelah masing-masingmake install
hanya sebagai tindakan pencegahan untuk memberikan "pembersihan" untuk pengguna yang kembali, mengubah opsi konfigurasi, dan mengkompilasi ulang (yang terjadi lebih sering daripada yang diharapkan).Dalam versi sebelumnya dari panduan kompilasi, tanpa pencegahan
make distclean
, salah satu dari pengguna ini kadang-kadang akan menemukan hasil yang tidak terduga.Bagaimana jika
make distclean
/make clean
memberikan kesalahan?Seperti ini:
atau ini:
Abaikan itu. Ini berarti Anda kemungkinan berlari
make distclean
dua kali yang tidak berbahaya.sumber
make distclean
untuk libvpx.