GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Makefile di Linux sangat berguna?

normal way untuk Linux adalah menggunakan file make.

Itu berevolusi dari semua kesalahan yang dibuat orang dengan mengkompilasi aplikasi yang semakin kompleks dengan tangan atau dengan skrip buatan sendiri. Merupakan hal yang tidak sepele untuk merepresentasikan dependensi build untuk proyek yang kompleks. Make Simply menawarkan cara standar untuk menentukan dependensi tersebut dan alat untuk mengurai dependensi dan menjalankan tindakan build terkait.

Bahkan UI yang menyederhanakan/mengotomatiskan proses pembuatan untuk Anda menggunakan file make atau yang serupa di belakang layar.

PEMBARUAN

Bagi mereka yang bertanya-tanya tentang komentar automake, berikut adalah dua pandangan berbeda tentang topik tersebut

http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_automake_libtool

http://www.scurrilous.com/blog/archives/2005/08/23/i-hate-automake/


Makefile melakukan begitu banyak pekerjaan untuk Anda, dan seringkali lebih kuat daripada yang disadari orang. Ambil makefile sederhana berikut

 all: helloworld

itu satu baris, dan (gnu make, setidaknya) akan tahu untuk menjalankan cc -o helloworld helloworld.c Kemudian, seiring berkembangnya proyek, Anda menambahkan satu aturan lagi:

helloworld: ui.o xml.o mailcomponent.o
   $(CC) $(CFLAGS) -o [email protected] [email protected] $^

dan buat tahu untuk lari

cc -c ui.c
cc -c xml.c
cc -c mailcomponent.c
cc -o helloworld helloworld.c ui.o xml.o mailcomponent.o

Lalu katakan Anda ingin mengoptimalkan semuanya.

CFLAGS=-O2

di awal file menjagamu.

Saat proyek bertambah besar, pantau terus file yang telah dan belum berubah, mencegah kompilasi ulang yang tidak relevan dan memakan waktu.

Makefile adalah penghemat waktu yang luar biasa, dan saya bahkan belum menyentuh resep lanjutan lainnya.


Linux
  1. Mengapa saya tetap menggunakan xterm

  2. 12 Contoh Perintah Wget yang Berguna di Linux

  3. Kapan setsid() berguna, atau mengapa kita perlu mengelompokkan proses di Linux?

  1. Linux – Apakah Kernel Linux/unix yang Berbeda Dapat Dipertukarkan?

  2. Mengapa sebagian besar program Linux ditulis dalam C?

  3. Mengapa `make clean` dan `make mrproper` keduanya digunakan?

  1. Mengapa Linux sangat penting untuk komputasi tepi

  2. Cara membuat komputer lama menjadi berguna kembali

  3. Mengapa Tautan Keras Ke Direktori Tidak Diizinkan Di Unix/linux?