cari

Apakah makefile dalam linux

Nov 26, 2021 pm 02:02 PM
linuxmakefile

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

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
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
Linux: Cara Memasuki Mod Pemulihan (dan Penyelenggaraan)Linux: Cara Memasuki Mod Pemulihan (dan Penyelenggaraan)Apr 18, 2025 am 12:05 AM

Langkah -langkah untuk memasukkan mod pemulihan Linux adalah: 1. Mulakan semula sistem dan tekan kekunci khusus untuk memasukkan menu Grub; 2. Pilih pilihan dengan (pemulihanMode); 3. Pilih operasi dalam menu Mod Pemulihan, seperti FSCK atau Root. Mod pemulihan membolehkan anda memulakan sistem dalam mod pengguna tunggal, melakukan pemeriksaan sistem fail dan pembaikan, mengedit fail konfigurasi, dan operasi lain untuk membantu menyelesaikan masalah sistem.

Komponen Penting Linux: Dijelaskan untuk PemulaKomponen Penting Linux: Dijelaskan untuk PemulaApr 17, 2025 am 12:08 AM

Komponen teras Linux termasuk kernel, sistem fail, shell dan alat biasa. 1. Kernel menguruskan sumber perkakasan dan menyediakan perkhidmatan asas. 2. Sistem fail menganjurkan dan menyimpan data. 3. Shell adalah antara muka bagi pengguna untuk berinteraksi dengan sistem. 4. Alat umum membantu menyelesaikan tugas harian.

Linux: Lihat struktur asasnyaLinux: Lihat struktur asasnyaApr 16, 2025 am 12:01 AM

Struktur asas Linux termasuk kernel, sistem fail, dan shell. 1) Sumber perkakasan pengurusan kernel dan gunakan UNAME-R untuk melihat versi. 2) Sistem fail ext4 menyokong fail dan log besar dan dibuat menggunakan mkfs.ext4. 3) Shell menyediakan interaksi baris arahan seperti BASH, dan menyenaraikan fail menggunakan LS-L.

Operasi Linux: Pentadbiran Sistem dan PenyelenggaraanOperasi Linux: Pentadbiran Sistem dan PenyelenggaraanApr 15, 2025 am 12:10 AM

Langkah -langkah utama pengurusan dan penyelenggaraan sistem Linux termasuk: 1) menguasai pengetahuan asas, seperti struktur sistem fail dan pengurusan pengguna; 2) Menjalankan pemantauan sistem dan pengurusan sumber, gunakan alat atas, HTOP dan lain -lain; 3) Gunakan log sistem untuk menyelesaikan masalah, gunakan JournalCTL dan alat lain; 4) Tulis skrip automatik dan penjadualan tugas, gunakan alat Cron; 5) Melaksanakan pengurusan dan perlindungan keselamatan, konfigurasikan firewall melalui iptables; 6) Menjalankan pengoptimuman prestasi dan amalan terbaik, menyesuaikan parameter kernel dan mengembangkan tabiat yang baik.

Memahami Mod Penyelenggaraan Linux: KeperluanMemahami Mod Penyelenggaraan Linux: KeperluanApr 14, 2025 am 12:04 AM

Mod penyelenggaraan Linux dimasukkan dengan menambah init =/bin/bash atau parameter tunggal pada permulaan. 1. Masukkan Mod Penyelenggaraan: Edit menu Grub dan tambahkan parameter permulaan. 2. Mengembalikan sistem fail untuk membaca dan menulis mod: mount-oremount, rw/. 3. Membaiki sistem fail: Gunakan arahan FSCK, seperti FSCK/DEV/SDA1. 4. Menyokong data dan beroperasi dengan berhati -hati untuk mengelakkan kehilangan data.

Bagaimana Debian Meningkatkan Kelajuan Pemprosesan Data HadoopBagaimana Debian Meningkatkan Kelajuan Pemprosesan Data HadoopApr 13, 2025 am 11:54 AM

Artikel ini membincangkan cara meningkatkan kecekapan pemprosesan data Hadoop pada sistem Debian. Strategi pengoptimuman meliputi peningkatan perkakasan, pelarasan parameter sistem operasi, pengubahsuaian konfigurasi Hadoop, dan penggunaan algoritma dan alat yang cekap. 1. Pengukuhan sumber perkakasan memastikan bahawa semua nod mempunyai konfigurasi perkakasan yang konsisten, terutama memberi perhatian kepada prestasi CPU, memori dan peralatan rangkaian. Memilih komponen perkakasan berprestasi tinggi adalah penting untuk meningkatkan kelajuan pemprosesan keseluruhan. 2. Sistem operasi Tunes deskriptor fail dan sambungan rangkaian: Ubah suai fail /etc/security/limits.conf untuk meningkatkan had atas deskriptor fail dan sambungan rangkaian yang dibenarkan dibuka pada masa yang sama oleh sistem. Pelarasan Parameter JVM: Laraskan fail Hadoop-env.sh

Cara Belajar Debian SyslogCara Belajar Debian SyslogApr 13, 2025 am 11:51 AM

Panduan ini akan membimbing anda untuk belajar cara menggunakan syslog dalam sistem Debian. SYSLOG adalah perkhidmatan utama dalam sistem Linux untuk sistem pembalakan dan mesej log aplikasi. Ia membantu pentadbir memantau dan menganalisis aktiviti sistem untuk mengenal pasti dan menyelesaikan masalah dengan cepat. 1. Pengetahuan asas syslog Fungsi teras syslog termasuk: mengumpul dan menguruskan mesej log secara terpusat; menyokong pelbagai format output log dan lokasi sasaran (seperti fail atau rangkaian); Menyediakan fungsi tontonan log dan penapisan masa nyata. 2. Pasang dan konfigurasikan syslog (menggunakan rsyslog) Sistem Debian menggunakan rsyslog secara lalai. Anda boleh memasangnya dengan arahan berikut: sudoaptupdatesud

Cara Memilih Versi Hadoop di DebianCara Memilih Versi Hadoop di DebianApr 13, 2025 am 11:48 AM

Apabila memilih versi Hadoop yang sesuai untuk sistem Debian, faktor utama berikut perlu dipertimbangkan: 1. Kestabilan dan sokongan jangka panjang: Bagi pengguna yang mengejar kestabilan dan keselamatan, disarankan untuk memilih versi stabil Debian, seperti Debian11 (Bullseye). Versi ini telah diuji sepenuhnya dan mempunyai kitaran sokongan sehingga lima tahun, yang dapat memastikan operasi sistem yang stabil. 2. Kelajuan Kemas Kini Pakej: Jika anda perlu menggunakan ciri dan ciri Hadoop terkini, anda boleh mempertimbangkan versi Debian yang tidak stabil (SID). Walau bagaimanapun, perlu diperhatikan bahawa versi yang tidak stabil mungkin mempunyai masalah keserasian dan risiko kestabilan. 3. Sokongan dan Sumber Masyarakat: Debian mempunyai sokongan masyarakat yang besar, yang dapat memberikan dokumentasi yang kaya dan

See all articles

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)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini