Jadual Kandungan
1. Apakah Makefile
Jika anda menamakan Makefile dengan nama lain, seperti Makefile_demo, ia juga dibenarkan, tetapi ia harus digunakan dengan cara berikut:
(tab) peraturan
Sebagai contoh, dalam gambar di atas, peraturan untuk menjana kalkulator ialah gcc main.o add.o sub.o mul.o p.o -o, Makefil akan menyemak utama .o pertama, Sama ada add.o, sub.o, mul.o, p.o wujud, jika tidak, ia akan mencari peraturan untuk menjana fail dependensi.
buat bersih:
7 Pembolehubah biasa
8 Pembolehubah automatik
Fail make juga memberikan kami sejumlah besar fungsi, dan dua fungsi berikut juga kerap digunakan. Perlu diingatkan bahawa semua fungsi dalam

Apakah makefile dalam linux

Nov 26, 2021 pm 02:02 PM
linux makefile

Dalam Linux, makefile ialah peraturan penyusunan fail projek, yang menerangkan peraturan penyusunan dan pemautan keseluruhan projek itu termasuk fail mana yang perlu disusun, fail mana yang tidak perlu disusun dan fail mana yang perlu dikompilasi dahulu, fail mana yang perlu dikompilasi, fail mana yang perlu dibina semula, dsb.

Apakah makefile dalam linux

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.

1. Apakah Makefile

Makefile boleh dianggap sebagai peraturan kompilasi fail projek, menerangkan peraturan penyusunan dan pemautan keseluruhan projek.

Projek peringkat perusahaan biasanya mempunyai banyak fail sumber, yang kadangkala dikelaskan ke dalam direktori yang berbeza mengikut fungsi, jenis dan modul Kadangkala berbilang program disimpan dalam satu direktori.

Makefle dilahirkan untuk menyelesaikan masalah bagaimana untuk menyusun beberapa kod di atas Ia mentakrifkan satu set peraturan yang menentukan fail mana yang perlu disusun dahulu, fail mana yang perlu disusun kemudian dan fail mana yang harus disusun. disusun semula.

Semua yang terlibat dalam menyusun keseluruhan projek boleh diterangkan dalam Makefile. Dalam erti kata lain, Makefile boleh mengautomasikan penyusunan projek projek kami tanpa perlu memasukkan sekumpulan fail sumber dan parameter secara manual setiap kali. Kelebihan

Makefile ialah ia boleh mencapai "kompilasi autonomi". Boleh dikatakan bahawa mana-mana program sumber Linux disertakan dengan Makefile. 2. Kelebihan Makefile

    Urus kompilasi kod, tentukan fail yang hendak disusun, susunan kompilasi dan sama ada penyusunan semula diperlukan; >
  • Jimat masa kompilasi. Jika fail berubah, hanya susun semula fail ini tanpa menyusun semula keseluruhan projek; Makefiles biasanya hanya perlu ditulis sekali dan tidak perlu diubah terlalu lama kemudian.

  • 3. Peraturan penamaan

  • Secara umumnya, adalah OK untuk menamakan Makefile sebagai
  • Makefile

    atau

    makefile
  • , tetapi terdapat banyak sumber Nama fail adalah huruf kecil, jadi lebih ramai pengaturcara menggunakan nama Makefile kerana ia boleh memaparkan Makefile terlebih dahulu.

Jika anda menamakan Makefile dengan nama lain, seperti Makefile_demo, ia juga dibenarkan, tetapi ia harus digunakan dengan cara berikut:

make -f Makefile_demo 4. Peraturan asas Peraturan asas Makefile ialah:

Sasaran: pergantungan

(tab) peraturan

Sasaran --> Sasaran fail yang perlu dijana

Pergantungan --> fail

tab -->

Setiap peraturan mesti bermula dengan tab , ruang tidak dibenarkan

Sebagai contoh, kami sering menulis ujian gcc. c -o test, Menggunakan Makefile, ia boleh ditulis sebagai:

Antaranya, ujian di baris pertama ialah sasaran yang akan dihasilkan, test.c ialah kebergantungan, dan baris kedua ialah peraturan untuk menjana ujian daripada ujian.c.

Kadangkala terdapat berbilang matlamat dalam Makefile, tetapi Makefile akan menetapkan matlamat pertama sebagai matlamat utama. 5. Prinsip kerja

Penjanaan sasaran:
test: test.c
    gcc test.c -o test
Salin selepas log masuk

a b . Jika fail bergantung tidak wujud, cari peraturan untuk menjana fail bergantung.

Sebagai contoh, dalam gambar di atas, peraturan untuk menjana kalkulator ialah gcc main.o add.o sub.o mul.o p.o -o, Makefil akan menyemak utama .o pertama, Sama ada add.o, sub.o, mul.o, p.o wujud, jika tidak, ia akan mencari peraturan untuk menjana fail dependensi.

Sebagai contoh, jika dependency main.o tiada, Makefile akan melihat di bawah untuk melihat sama ada terdapat peraturan untuk menjana main.o. Apabila ia mendapati bahawa peraturan gcc main.c -o main.o boleh menjana main.o, ia menggunakan peraturan ini untuk menjana main.o, dan kemudian menjana kalkulator matlamat muktamad. Seluruh proses adalah untuk mencari kebergantungan ke bawah, dan kemudian laksanakan arahan ke atas untuk menjana matlamat utama.

Kemas kini sasaran:

a. Periksa semua kebergantungan sasaran Jika sebarang kebergantungan dikemas kini, jana semula sasaran; . Jika fail sasaran lebih lewat daripada fail bergantung, ia perlu dikemas kini. Apakah makefile dalam linux

Sebagai contoh, jika main.c diubah suai, sasaran utama.o akan disusun semula Apabila main.o dikemas kini, kalkulator sasaran muktamad juga akan disusun semula. Kemas kini fail lain juga dilakukan secara analogi.

6. Pelaksanaan perintah

buat:

Gunakan arahan ini untuk menjana fail sasaran mengikut peraturan yang telah ditetapkan.

Jika nama fail Makefile bukan Makefile atau makefile, pilihan

-f

perlu ditambah, seperti: Apakah makefile dalam linux

make -f Makefile_demo

buat bersih:

Kosongkan fail perantaraan (fail.o) dan fail sasaran akhir yang dijana semasa proses penyusunan.

Jika fail bernama clean wujud dalam direktori semasa, arahan ini tidak akan dilaksanakan.

-->Penyelesaian: Pengisytiharan sasaran pseudo: .PHONY:clean

Simbol khas:

-: Menunjukkan bahawa walaupun ralat berlaku semasa pelaksanaan arahan ini, arahan seterusnya akan terus dilaksanakan. Contohnya:

-rm a.o build/

@: Menunjukkan bahawa arahan hanya akan dilaksanakan tanpa bergema. Apabila peraturan am dilaksanakan, peraturan pelaksanaan akan dicetak pada terminal Selepas menambah simbol ini, hanya arahan akan dilaksanakan dan peraturan yang dilaksanakan tidak akan digemakan. Contohnya:

@echo $(SOURCE)

7 Pembolehubah biasa

takrifan pembolehubah dan tugasan:

pembolehubah ialah. digunakan secara langsung Definisi boleh dilengkapkan dengan memberikan nilai, seperti:

SERTAKAN = ./include/

Nilai boleh ubah:

Sertakannya dalam kurungan dan tambah tanda dolar, seperti:

FOO = $(OBJ)

Pembolehubah terbina dalam sistem:

biasanya huruf besar, seperti CC , PWD, CFLAG, dsb.

Sesetengahnya mempunyai nilai lalai, ada yang tidak. Contohnya, yang biasa:

CPPFLAGS: Pilihan yang diperlukan oleh prapemproses seperti: -I

CFLAGS: Parameter yang digunakan semasa penyusunan –Wall –g -c

LDFLAGS : Pilihan yang digunakan oleh pustaka pautan –L -l

Nilai lalai pembolehubah boleh diubah suai Contohnya, nilai lalai CC ialah cc, tetapi ia boleh diubah suai kepada gcc: CC. =gcc

8 Pembolehubah automatik

Pembolehubah automatik yang biasa digunakan:

Makefile menyediakan banyak pembolehubah automatik, tetapi tiga berikut biasanya digunakan. Pembolehubah automatik ini hanya boleh digunakan dalam arahan dalam peraturan dan tidak boleh digunakan di tempat lain.

$@ --> Sasaran dalam peraturan

$

Contohnya:

apl: main.c func1.c fun2.c

gcc $^ - o $@

di mana : $^ bermaksud main.c func1.c fun2.c, $

Peraturan corak:

Peraturan corak hendaklah menggunakan % dalam keadaan sasaran dan kebergantungan untuk memadankan fail yang sepadan, seperti main.c, func1.c dalam direktori , func2.c tiga fail, penyusunan tiga fail ini boleh dilengkapkan dengan satu peraturan:

%.o:%.c

$(CC) –c $

Peraturan corak ini bermaksud:

main.o dijana oleh main.c,

func1.o dijana oleh func1.c,

func2.o dijana oleh func2.c

Ini ialah peranan peraturan corak, yang boleh memadankan semua fail dalam direktori pada satu masa.

9. Fungsi

Fail make juga memberikan kami sejumlah besar fungsi, dan dua fungsi berikut juga kerap digunakan. Perlu diingatkan bahawa semua fungsi dalam

makefile mesti mempunyai nilai pulangan

. Dalam contoh berikut, katakan terdapat tiga fail main.c, func1.c dan func2.c dalam direktori.

wildcard:

digunakan untuk mencari fail jenis tertentu dalam direktori yang ditentukan, dan parameter berikut ialah jenis fail direktori, contohnya:

src = $ (wildcard ./src/*.c)

Ayat ini bermaksud: Cari semua fail dengan akhiran .c dalam direktori ./src dan berikannya kepada pembolehubah src.

Selepas pelaksanaan arahan selesai, nilai src ialah: main.c func1.c fun2.c.

patsubst:

Penggantian padanan, seperti contoh berikut, digunakan untuk mencari semua fail yang berakhir dengan .c daripada direktori src dan menggantikannya dengan fail .o , Dan tetapkan ia kepada obj.

obj = $(patsubst %.c ,%.o ,$(src))

Gantikan semua fail dengan akhiran .c dalam pembolehubah src dengan .o.

Selepas arahan dilaksanakan, nilai obj ialah main.o func1.o func2.o

Khususnya, jika anda ingin meletakkan semua fail .o dalam direktori obj, anda boleh gunakan kaedah berikut:

ob = $(patsubst ./src/%.c, ./obj/%.o, $(src))

Cadangan berkaitan: "

Tutorial Video Linux

Atas ialah kandungan terperinci Apakah makefile dalam linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

DeepSeek Web Versi Pintu Masuk Laman Web Rasmi DeepSeek DeepSeek Web Versi Pintu Masuk Laman Web Rasmi DeepSeek Feb 19, 2025 pm 04:54 PM

DeepSeek adalah alat carian dan analisis pintar yang kuat yang menyediakan dua kaedah akses: versi web dan laman web rasmi. Versi web adalah mudah dan cekap, dan boleh digunakan tanpa pemasangan; Sama ada individu atau pengguna korporat, mereka dapat dengan mudah mendapatkan dan menganalisis data besar-besaran melalui DeepSeek untuk meningkatkan kecekapan kerja, membantu membuat keputusan dan menggalakkan inovasi.

Cara Memasang DeepSeek Cara Memasang DeepSeek Feb 19, 2025 pm 05:48 PM

Terdapat banyak cara untuk memasang DeepSeek, termasuk: Menyusun dari Sumber (untuk pemaju berpengalaman) menggunakan pakej yang dikompilasi (untuk pengguna Windows) menggunakan bekas docker (untuk yang paling mudah, tidak perlu bimbang tentang keserasian) Dokumen rasmi dengan berhati -hati dan menyediakannya sepenuhnya untuk mengelakkan masalah yang tidak perlu.

Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Apr 01, 2025 pm 05:09 PM

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Pemasangan Laman Web Rasmi Bitget (Panduan Pemula 2025) Pemasangan Laman Web Rasmi Bitget (Panduan Pemula 2025) Feb 21, 2025 pm 08:42 PM

Bitget adalah pertukaran cryptocurrency yang menyediakan pelbagai perkhidmatan perdagangan termasuk perdagangan tempat, perdagangan kontrak dan derivatif. Ditubuhkan pada tahun 2018, pertukaran itu beribu pejabat di Singapura dan komited untuk menyediakan pengguna dengan platform perdagangan yang selamat dan boleh dipercayai. Bitget menawarkan pelbagai pasangan perdagangan, termasuk BTC/USDT, ETH/USDT dan XRP/USDT. Di samping itu, pertukaran mempunyai reputasi untuk keselamatan dan kecairan dan menawarkan pelbagai ciri seperti jenis pesanan premium, perdagangan leverage dan sokongan pelanggan 24/7.

Dapatkan Pakej Pemasangan Gate.io secara percuma Dapatkan Pakej Pemasangan Gate.io secara percuma Feb 21, 2025 pm 08:21 PM

Gate.io adalah pertukaran cryptocurrency yang popular yang boleh digunakan pengguna dengan memuat turun pakej pemasangannya dan memasangnya pada peranti mereka. Langkah -langkah untuk mendapatkan pakej pemasangan adalah seperti berikut: Lawati laman web rasmi Gate.io, klik "Muat turun", pilih sistem operasi yang sepadan (Windows, Mac atau Linux), dan muat turun pakej pemasangan ke komputer anda. Adalah disyorkan untuk mematikan perisian antivirus atau firewall sementara semasa pemasangan untuk memastikan pemasangan yang lancar. Selepas selesai, pengguna perlu membuat akaun Gate.io untuk mula menggunakannya.

Pakej pemasangan OUYI OKX disertakan secara langsung Pakej pemasangan OUYI OKX disertakan secara langsung Feb 21, 2025 pm 08:00 PM

Ouyi Okx, pertukaran aset digital terkemuka di dunia, kini telah melancarkan pakej pemasangan rasmi untuk menyediakan pengalaman perdagangan yang selamat dan mudah. Pakej pemasangan OKX OUYI tidak perlu diakses melalui penyemak imbas. Proses pemasangan adalah mudah dan mudah difahami.

Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Mar 31, 2025 pm 11:54 PM

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Portal rasmi muat turun Ouyi Exchange Portal rasmi muat turun Ouyi Exchange Feb 21, 2025 pm 07:51 PM

Ouyi, juga dikenali sebagai Okx, adalah platform perdagangan cryptocurrency terkemuka di dunia. Artikel ini menyediakan portal muat turun untuk pakej pemasangan rasmi Ouyi, yang memudahkan pengguna memasang klien OUYI pada peranti yang berbeza. Pakej pemasangan ini menyokong sistem Windows, Mac, Android dan iOS. Selepas pemasangan selesai, pengguna boleh mendaftar atau log masuk ke akaun OUYI, mula membuat kriptografi perdagangan dan nikmati perkhidmatan lain yang disediakan oleh platform.

See all articles