GNU Buat

Tutorial Buat GNU

Tutorial Buat GNU

GNU Make adalah alat yang membantu menghasilkan program yang dapat dilaksanakan dari kod sumber dan juga memproses fail bukan sumber lain dari projek. Make mendapat logik membina eksekusi dan memproses fail bukan sumber lain dari fail bernama a makefile atau a Makefile.

Kenapa Buat?

Memasang Membuat

Membuat sendiri tidak cukup untuk membina program. Untuk membina program dari sumber, anda perlu memasang penyusun dan alat lain pada sistem anda. Oleh itu, kami memerlukan rangkaian alat pembangunan yang lengkap untuk tujuan kami.

Untuk menyusun sumber di Linux, ada paket yang disebut "build-essential" pada sistem berasaskan Debian (e.g. Ubuntu, Linux Mint, dll) dan "Alat Pembangunan" di Red Hat dan CentOS.

Untuk memasangnya pada sistem berasaskan Debian:

apt-get install build-mustahak

Untuk memasangnya di CentOS dan Red Hat jalankan:

yum groupinstall "Alat Pembangunan"

Bermula dengan Makefile

Mari mulakan dengan menulis a Hai dunia atur cara dengan bahasa pengaturcaraan C.

Fungsi utama program C kami akan berada di dalamnya neraka.c. Kandungan fail kelihatan seperti berikut:

#sertakan  int utama () my_fun (); pulangan 0;  

Kod ini merangkumi fail header hellofun.h yang mengandungi pengisytiharan fungsi yang disebut hello_fun (). Kandungan hellofun.h adalah:

batal my_fun ();

Definisi my_fun () tinggal di dalam hellofun.c:

#sertakan  #sertakan  batal my_fun () printf ("Hello World!\ n "); kembali;

Ini adalah program yang sangat mudah dan kami dapat menyusunnya dengan gcc hanya dengan satu baris perintah. Tetapi, program kehidupan sebenar tidak sesederhana dan sekecil ini. Segala-galanya menjadi tidak lama lagi.  Di bawah ini, saya akan menulis skrip makefile yang diperlukan untuk menyusun program hello world ini. Saya akan menerangkan bahagian-bahagiannya yang berlainan di bahagian-bahagian berikutnya.

hellomain: hellomain.c hellofun.c gcc -o hello hellomain.c Hellomain.c-Saya.

Simpan kod ini dalam fail yang disebut makefile (tanpa perluasan fail). Masukkan fail ke dalam direktori di mana fail C berada. Arahkan baris arahan anda ke dalam direktori ini. Pada baris arahan tuliskan dan tekan enter. Fail yang boleh dilaksanakan yang dipanggil hello akan dihasilkan di direktori semasa. Anda boleh mengesahkan hasilnya dengan menjalankan perintah yang boleh dilaksanakan dengan perintah berikut.

./ salam

Keluaran:

Hai dunia!

Peraturan, Sasaran dan Kebergantungan

Skrip makefile adalah kumpulan peraturan. Peraturan memerintahkan Membuat cara membina sasaran atau output dari sumber atau fail lain. Peraturan tersebut juga menentukan ketergantungan sasaran. Peraturan pergantungan mesti dilaksanakan terlebih dahulu bergantung pada apakah itu sudah diproses dengan melihat cap waktu. Dalam contoh kita makefile di atas, kita mempunyai peraturan dengan sasaran yang dinamakan neraka dan kebergantungannya. Nama sasaran dipisahkan oleh titik dua dari senarai kebergantungan. Perintah shell yang akan dilaksanakan disenaraikan dalam baris berikut. Perintah shell mesti bermula dengan watak tab.

Sekiranya anda tidak menentukan parameter dengan perintah make maka sasaran pertama akan dijalankan. Dalam contoh kami, kami tidak menentukan parameter apa pun dan kami ada neraka sebagai sasaran pertama dan satu-satunya.

Pemboleh ubah

Pemboleh ubah adalah kaedah menulis nilai yang bagus sekali dan menggunakannya berkali-kali tanpa mengulang nilainya berulang kali. Ini membantu kita menjaga kod kita KERING (Jangan Ulangi Diri Sendiri). Sekiranya anda perlu mengubah beberapa nilai di seluruh skrip, anda hanya perlu mengubahnya di satu tempat untuk menunjukkan perubahan di mana sahaja jika anda menggunakan pemboleh ubah.

Dalam contoh kami menggunakan gcc sebagai penyusun, tetapi kita mungkin perlu mengubah penyusun menjadi perkara lain. Jadi, kita boleh menyimpan nama penyusun dalam pemboleh ubah. Kita juga boleh menyimpan bendera penyusun dalam pemboleh ubah lain untuk menggunakannya semula. Untuk menetapkan nilai ke pemboleh ubah kami menggunakan tanda sama (=) dan untuk membaca pemboleh ubah itu kami menggunakan $ (variabel_name).

CC = gcc CFLAGS = -I. hellomain: hellomain.c hellofun.c $ (CC) -o hello hellomain.c Hellomain.c $ (CFLAGS)

Membersihkan Persekitaran

Kita sering kali perlu membersihkan persekitaran kita. Sekiranya kita mahu setiap bahagian projek kita dibina semula dari awal, kita perlu membersihkannya. Dalam contoh ringkas kami, satu-satunya fail yang dihasilkan adalah hello boleh dilaksanakan. Tanpa menghapusnya secara manual, kita dapat menghapusnya dengan membuat. Oleh itu, kita dapat membuat peraturan untuk itu dan menamakan sasaran sebagai bersih.

CC = gcc CFLAGS = -I. hellomain: hellomain.c hellofun.c $ (CC) -o hello hellomain.c Hellomain.c $ (CFLAGS) bersih: rm hello

Perintah shell dalam target bersih hanyalah perintah shell berusia rm. Sekarang, dari baris arahan jalankan:

buat bersih

Lihat direktori semasa untuk melihat bahawa hello fail yang boleh dilaksanakan habis.

Memperluas Contoh Kami Untuk Menyelesaikan Lebih Banyak Masalah

Dalam contoh kompilasi dunia hello sederhana kami, kami mempunyai masalah yang belum dapat kami selesaikan. neraka sasaran melihat ahli neraka.c dan neraka.c cap masa fail pada masa berikutnya anda mencuba menyusunnya semula membuat atau buat Hellomain. Oleh itu, jika anda menukar salah satu daripada dua fail tersebut, fail tersebut akan dikompilasi ulang. Tetapi, jika anda berubah neraka.h maka ia tidak akan menyusun semula. Itu tidak dijangka!

Sekali lagi, kami telah melangkau tahap pertengahan. Kami tidak menghasilkan fail objek dan secara langsung menghasilkan yang boleh dilaksanakan. Tetapi, di belakang tabir fail objek dibuat dalam direktori sementara dan dihapus. Kami ingin menghasilkan fail objek sebelum membina yang boleh dilaksanakan. Kali ini kami menamakan sasaran utama sebagai semua

semua: hellomain.o neraka.o gcc hellomain.o neraka.o -o hello hellomain.o: hellomain.c hellofun.h gcc -I. -c Hellomain.c hellofun.o: hellofun.c hellofun.h gcc -I. -c hellofun.c bersih: rm -rf *.o rm hello

Jalankan perintah make sekali lagi untuk melihat apakah program anda berjaya dibuat atau tidak. Jalankan hello yang dapat dilaksanakan untuk mengesahkan hasilnya. Lihat direktori semasa dan anda akan melihat bahawa fail objek dibuat. Kami telah menambahkan satu baris lagi ke sasaran bersih untuk membersihkan fail objek. Skrip makefile ini akan membantu menyusun semula program hello world walaupun neraka.h fail diubah suai.

Kesimpulannya

Make adalah salah satu alat yang paling penting untuk pengguna dan pengaturcara linux. Sekiranya anda pengguna akhir, pengetahuan tentang pembuatan akan membantu anda memperbaiki banyak perkara yang rosak di dunia linux anda. Sekiranya anda seorang pengaturcara maka anda tidak boleh berjalan dengan menulis kod tersebut dan membiarkan pengguna anda mengetahui cara menyusun kod sumber tersebut ke yang dapat dilaksanakan. Anda mesti membuat skrip makefile untuk pengguna akhir, agar mereka tidak memainkan permainan meneka untuk menyusun sumber anda ke yang dapat dieksekusi.

Rujukan

Halaman Utama Projek GNUMake
GNU Buat Dokumentasi

Cara Menunjukkan Overlay OSD dalam Aplikasi dan Permainan Linux Skrin Penuh
Bermain permainan skrin penuh atau menggunakan aplikasi dalam mod skrin penuh bebas gangguan dapat memisahkan anda dari maklumat sistem yang relevan y...
5 Kad Tangkap Permainan Teratas
Kita semua telah melihat dan menyukai streaming permainan permainan di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain terat...
Cara Membangunkan Permainan di Linux
Satu dekad yang lalu, tidak banyak pengguna Linux akan meramalkan bahawa sistem operasi kegemaran mereka suatu hari nanti akan menjadi platform permai...