Cara menggunakan alat binaan automatik Linux membuat dan Makefile

王林
Lepaskan: 2023-05-14 16:22:12
ke hadapan
1834 orang telah melayarinya

1. Peranan make dan Makefile

Fail sumber dalam projek tidak dikira dalam beberapa direktori mengikut jenis, fungsi dan modul mentakrifkan satu siri peraturan , fail mana yang perlu disusun dahulu, fail mana yang perlu disusun kemudian, fail mana yang perlu disusun semula, dan operasi fungsi yang lebih kompleks boleh dilakukan.

Jadi, faedah makefile ialah - "Kompilasi automatik". Sebaik sahaja ia ditulis, hanya satu arahan buat diperlukan, dan keseluruhan projek disusun secara automatik, yang sangat meningkatkan kecekapan.

make ialah alat arahan yang mentafsir arahan dalam fail make Secara umumnya, kebanyakan IDE mempunyai arahan ini, seperti: Delphi's make, Visual C++'s nmake, dan GNU's di bawah Linux. Dapat dilihat bahawa makefile telah menjadi kaedah penyusunan dalam kejuruteraan. make ialah arahan, dan makefile ialah fail Gunakan kedua-duanya bersama-sama untuk menyelesaikan pembinaan automatik projek.

2. Penggunaan make dan Makefile

Sebelum memahami kaedah kebergantungan dan kebergantungan, mari tulis program kecil dalam bahasa C.

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

Kami mencipta fail make.c dan menulis kod hello make.

Kemudian mari kita buat Makefile lain (makefile juga mungkin, tetapi tidak disyorkan).

Kemudian kami mengedit Makefile dan menulis kod berikut:

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

Kemudian kami simpan dan keluar.

Kemudian kita boleh melaksanakan arahan buat. Jika ia menggesa bahawa make tidak wujud, ia adalah kerana ia tidak dipasang Anda boleh bertukar untuk memasang sebagai root. Kod pemasangan: yum install make atau sudo install make.

Selepas melaksanakan make seperti biasa, paparan berikut akan muncul.

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

Kemudian kami akan melihat fail dalam direktori semasa.

Kami dapati terdapat program boleh laku tambahan yang dibuat. Kemudian mari jalankan dengan ./make dan cuba.

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

Kami akan mendapati bahawa output program boleh laku ini menghasilkan.

Ini ialah alat binaan automatik kami, yang hanya perlu dikonfigurasikan dalam Makefile. Kemudian taip buat terus untuk menyusun kod. Kemudian mari cuba menaip buat lagi.

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

menggesa kami bahawa program buat adalah yang terkini. Iaitu, jika anda belum mengubah suai atau mengemas kini program. Kemudian ia tidak akan disusun untuk anda kerana program anda belum disentuh Mengapa menyusunnya?

Sekarang mari kita kembali dan menganalisis kod yang ditulis dalam Makefile.

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

Mula-mula kita bahagikan kepada tiga bahagian

make

make.c

gcc make.c -o make -std=c99

Hubungan antara ketiga-tiga ini ialah make bergantung kepada make.c. Kedua-duanya mempunyai kebergantungan , dan gcc make.c -o make -std=c99 ialah kaedah pembuatan yang bergantung pada make.c, yang dipanggil kaedah bergantung .

Apakah kaedah kebergantungan dan kebergantungan?

Satu analogi.

Sekarang penghujung bulan dan perbelanjaan hidup anda sudah tiada. Pada masa ini, anda menelefon ayah anda dan memberitahunya: "Ayah, sudah akhir bulan. Saya tidak mempunyai wang." Ayah kamu akan tahu pada masa ini dan akan memberi kamu perbelanjaan hidup. Di sini, anda dan bapa anda mempunyai hubungan bapa-anak, jadi anda bergantung kepada bapa anda, dan terdapat hubungan pergantungan antara anda. Dan ayah anda memberi anda perbelanjaan hidup, yang merupakan cara untuk anda bergantung pada ayah anda, jadi ini adalah kaedah pergantungan. Jika anda menelefon bapa rakan sebilik anda untuk meminta perbelanjaan hidup pada masa ini, dia akan memberitahu anda untuk keluar. Kerana anda tidak mempunyai hubungan pergantungan sama sekali. Jika anda tidak mempunyai hubungan pergantungan, tidak akan ada kaedah pergantungan.

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

Jadi prosedur saya adalah sama. make ialah program boleh laku yang dihasilkan. Dan ia bergantung kepada make.c kerana ia disusun daripada make.c. Kaedah bergantung adalah untuk melaksanakan perintah gcc make.c -o make -std=c99.

Prinsip pergantungan

  • make akan mencari fail bernama "Makefile" atau "makefile" dalam direktori semasa.

  • Jika ditemui, ia akan mencari fail sasaran pertama (sasaran) dalam contoh di atas, ia akan mencari fail "hello" dan menggunakan fail ini sebagai dokumen sasaran.

  • Jika fail hello tidak wujud, atau masa pengubahsuaian fail bagi fail test.o berikutnya yang hello bergantung adalah lebih baharu daripada fail ujian (anda boleh menggunakan sentuhan untuk menguji) , kemudian, dia Perintah yang ditakrifkan kemudian akan dilaksanakan untuk menjana fail ujian.

  • Jika fail test.o yang bergantung pada ujian tidak wujud, maka make akan mencari kebergantungan fail test.o sasaran dalam fail semasa. ia akan mengikut peraturan itu Jana fail test.o. (Ini sedikit seperti proses tindanan)

  • Sudah tentu, fail C dan fail H anda wujud, jadi make akan menjana fail test.o, dan kemudian gunakan test.o The fail mengisytiharkan tugas utama membuat, iaitu untuk melaksanakan ujian fail.

  • Ini ialah kebergantungan keseluruhan make akan mencari kebergantungan fail lapisan demi lapisan sehingga fail sasaran pertama akhirnya disusun.

  • Semasa proses carian, jika ralat berlaku, contohnya, fail bergantung terakhir tidak dapat ditemui, maka make akan keluar terus dan melaporkan ralat, dan untuk ralat yang ditentukan command , atau kompilasi tidak berjaya, buat abaikan sahaja.

  • make only cares about file dependencies, iaitu jika fail selepas titik bertindih masih tiada selepas saya menjumpai dependencies, maka saya minta maaf, saya tidak akan berfungsi.

Pembersihan

Apabila kita biasanya menulis kod, kita selalunya perlu menyusun dan melaksanakan kod berulang kali.

Sebelum menyusun semula kali seterusnya, anda perlu membersihkan atur cara boleh laku yang dijana kali terakhir. Walau bagaimanapun, anda mungkin membuat kesilapan semasa pembersihan dan memadam fail sumber secara tidak sengaja, yang boleh menyebabkan masalah sekali lagi.

Jadi adakah kami ada penyelesaiannya? Jawapannya sudah tentu.

Mari teruskan mengedit Makefile.

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

Kami menambah

.PHONY:clean

clean:

	rm -f make
Salin selepas log masuk

pada asas asalnya.

.PHONY mengubah suai sasaran pseudo dan sasaran pseudo sentiasa dilaksanakan. clean ialah arahan buat yang ditentukan sendiri, kaedah penggunaannya ialah make clean

Mari cuba arahan ini

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

Kita dapat melihatnya Ia telah dibersihkan , jadi mengapa sasaran pseudo sentiasa dilaksanakan? Mari jalankan beberapa kali dan lihat.

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

Kita boleh melaksanakannya sepanjang masa, tetapi bagaimana jika kita melaksanakan make beberapa kali?

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

Kami akan mendapati bahawa selepas make dilaksanakan sekali, ia tidak boleh dilaksanakan kerana ia tidak diubah suai oleh .PHONY. Kemudian saya akan mengubah suainya dengan .PHONY dan cuba lagi.

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

Kemudian kita simpan dan keluar, laksanakan make

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

beberapa kali dan kita dapat melihat bahawa ia digunakan beberapa kali Dilaksanakan. Tetapi saya rasa ini tidak perlu, kerana fail itu belum diubah suai. Penyusunan semula tidak bermakna, jadi tidak disyorkan untuk menambah .PHONY

pada kompilasi automatik Kami menyimpan dan keluar make

Cara menggunakan alat binaan automatik Linux membuat dan Makefile

beberapa kali. dan kita boleh lihat sehingga ia telah dilaksanakan beberapa kali. Tetapi saya rasa ini tidak perlu, kerana fail itu belum diubah suai. Menyusun semula tidak masuk akal, jadi tidak disyorkan untuk menambah .PHONY

pada kompilasi automatik.

Atas ialah kandungan terperinci Cara menggunakan alat binaan automatik Linux membuat dan Makefile. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan