Rumah > Operasi dan penyelenggaraan > operasi dan penyelenggaraan linux > Apakah alat pembangunan linux terbenam?

Apakah alat pembangunan linux terbenam?

藏色散人
Lepaskan: 2023-03-17 09:43:15
asal
2969 orang telah melayarinya

Alat pembangunan Linux yang dibenamkan termasuk: 1. alat vim ialah penyunting teks yang dibangunkan daripada vi Ia mempunyai penyiapan kod, kompilasi dan lompat ralat serta fungsi pengaturcaraan yang mudah digunakan; pengkompil yang dibangunkan oleh GNU; 3. Pengurus projek membuat, membuat ialah pengurus penyusunan projek automatik di Linux, dsb.

Apakah alat pembangunan linux terbenam?

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

Apakah alat pembangunan Linux yang dibenamkan?

Alat pembangunan Linux terbenam

Menggunakan vim

1. Editor teks: vim + vscode : Belajar gunakan dan konfigurasi vim, pasang dan gunakan pemalam + pautan jauh vscode

2 Pengkompil gcc: Pilihan kompilasi biasa, pengeluaran dan penggunaan perpustakaan statik dan perpustakaan dinamik

3. penyahpepijatan titik putus, paparan memori, ralat memori penyahpepijatan

4 Pengurus projek membuat: menulis Makfile, penulisan Makefile berbilang direktori

5 6. alat pengurusan versi git (dalam talian: bahasa C)

7. Cmake (projek)

8 /gvim: editor teks gedit emac (di luar tetikus)

Senario yang berkenaan: penyuntingan fail tunggal + pemalam (sangat disesuaikan)>IDE

  • mod vim: mod baris arahan (kali pertama masuk, tekan a, i), mod baris bawah, mod sisip (esc bertukar ke baris arahan) wq simpan dan keluar

  • konfigurasi vim (vimc):

  • Ubah suai fail /etc/vim/vimc (nombor baris, gaya lekukan, sokongan tetikus)

Pasang pemalam

vim /etc/vim/vimrc
Salin selepas log masuk

Penggunaan arahan vim:

  • Baris arahan: yy salin p tampal dd padam u pulihkan baris sebelumnya

  • garis bawah : Find/str ?str

Ganti: nombor baris atau %s/old/new/gc

Edit berbilang fail: fail vim 1 fail 2 fail 3.

Lompat: n nama fail

simpan fail w r

sp+nama fail penulisan berbilang fail

penyusun gcc

<> Perbezaan antara "" dan "": laluan carian adalah berbeza: carian terdahulu dalam direktori fail pengepala sistem "/usr/include", jika tidak, ralat akan dilaporkan Cari terakhir dalam direktori semasa, jika tidak, cari dalam direktori fail pengepala sistem Jika tidak, ralat akan dilaporkan

Spesifikasi: <> Mengandungi fail pengepala sistem "" Mengandungi tersuai fail pengepala

Pemprosesan yang berbeza Pengkompil mempunyai pemasang yang berbeza

Semua fail pengepala dalam sistem berada dalam fail vim/pengguna/include/header
#if 0 //注释 //#if 1//取消注释
#endif
Salin selepas log masuk

Gambaran Keseluruhan gcc: Penyusun disediakan oleh Projek GNU (Pengkompil Unix cc) (rantai alat kompilasi g++ ld ldfd) –> (rantai alat kompilasi silang)

  • Apakah itu kompilasi silang ? .c->.s->.o->elf

  • Proses penyusunan kod pada mesin hos untuk dijalankan pada mesin sasaran

  • proses penyusunan kod berjalan pada platform CPU lain di bawah platform CPU semasa

Pilihan kompilasi
a\源文件到可执行经历了哪几个步骤?(预处理,编译,汇编,链接)
b\预处理的任务:头文件展开(#include)、宏替换(#define)、条件编译(#ifdef)(#开头的代码)
c\编译的任务:检查语法。转成汇编、生成汇编文件(.s/.S)
d\汇编的任务:编译汇编文件,生成目标文件(.o)
e\链接的任务:链接所有目标文件,生成符号表,生成可执行文件
Salin selepas log masuk
  • -o (Penamaan semula boleh laku : format elf? )

  • -E (pengkompil hanya melakukan prapemprosesan)

-I: Tentukan laluan pihak ketiga untuk penyusunan fail pengepala

-S: Peringkat Kompilasi

-c: Teruskan ke peringkat pemasangan

-O1 -O2 -O3 (pengoptimuman kompilasi): Baidu menyemak perkara yang telah dilakukan masing-masing

-w (amaran tidak aktif) - Dinding (amaran terbuka): bertukar maklumat amaran

Fail perpustakaan

Pengkompil gcc (pengeluaran dan penggunaan perpustakaan statik dan perpustakaan dinamik)

  • Penyahpepijat gdb (penamaan biasa, ralat memori panggilan)

  • Buatan pengurus projek (tulisan makefile, penulisan Makefile berbilang direktori)

  • luaran: Fungsi ini telah ditakrifkan dalam fail lain

  • Fungsi perpustakaan: printf scanf strcpy strcat (disimpan dalam fail perpustakaan)

Fail perpustakaan: Simpan fungsi dan pembolehubah, fungsi dan pembolehubah di dalamnya hanya boleh digunakan, tetapi pelaksanaannya tidak dapat dilihat

Klasifikasi fail perpustakaan: perpustakaan statik (.a) dan perpustakaan dinamik (.so)

Pustaka statik ( .a ): Fungsi dan pembolehubah yang disimpan dimuatkan ke dalam fail boleh laku semasa fasa penyusunan

Pustaka dinamik (.so): Fungsi dan pembolehubah yang disimpan dimuatkan ke dalam fail boleh laku semasa fasa pelaksanaan

Perbezaan antara menggunakan perpustakaan statik dan perpustakaan dinamik (perbezaan antara fail boleh laku:)

Fail boleh laku disusun menggunakan perpustakaan statik>Saiz fail boleh laku yang disusun menggunakan perpustakaan dinamik --Tambahan yang menjejaskan memori

  • Kelajuan pelaksanaan fail boleh laku yang disusun menggunakan perpustakaan statik>Kelajuan pelaksanaan fail boleh laku yang disusun menggunakan perpustakaan dinamik

  • Naik taraf menggunakan fail boleh laku disusun daripada perpustakaan statik

  • Penyerahan program menggunakan fail boleh laku yang disusun daripada perpustakaan statik>Gunakan perpustakaan dinamik Gunakan program fail boleh laku yang disusun oleh perpustakaan

  • Laluan storan fail perpustakaan:

  • Fail perpustakaan diperlukan untuk operasi sistem: /lib

Pustaka Bab diperlukan untuk pengendalian perisian dan alatan pihak ketiga : /usr/lib

Apabila menyusun, pengkompil secara automatik akan pergi ke dua direktori ini untuk mencari fail perpustakaan yang perlu dipautkan

untuk mencipta pustaka statik:

  • Kompilasi fail sumber sasaran ke dalam fail sasaran: gcc -c fail sumber sasaran (boleh berbilang) (gcc -c add.c)

  • Gunakan Alat ar membuat statik: ar -rcs (buat jika perpustakaan tidak wujud, kemas kini jika wujud) nama fail perpustakaan yang akan dijana (lib+nama perpustakaan+akhiran.a) fail sasaran

contoh :ar -rcs libadd.a add.o

Gunakan perpustakaan statik:

-l: Tentukan pustaka statik yang hendak dimuatkan -l nama perpustakaan

-L: Tentukan pustaka statik untuk memuatkan laluan storan fail Perpustakaan

fail sumber gcc-l nama perpustakaan-L laluan storan perpustakaan

Contoh: gcc demo.c -ladd -L ./libls

Pengurus projek membuat

  • Apakah itu projek?

Fail berbilang sumber + fail lain (gambar + fail pengepala + fail skrip)

  • Kerja pengurus projek: Susun berbilang sumber Fail

gcc + semua fail sumber -o fail boleh laku—>

Makefile ialah fail skrip (pemprosesan kelompok), dan terdapat sintaks yang berkaitan
  • Sintaks Makefile:
  • Tiga elemen: sasaran, kebergantungan, perintah
  • Format:

    Sasaran: kebergantungan
perintah tab

Sasaran: fail terhasil akhir

Pergantungan: fail diperlukan untuk jana sasaran

Perintah: arahan yang perlu dilaksanakan semasa menjana sasaran

Perintah pelaksanaan:

buat: lalai dari badan sasaran pertama Laksanakan

make+ badan sasaran: laksanakan daripada badan sasaran yang sepadan

Jika fail yang badan sasaran bergantung ialah sasaran, mula-mula laksanakan sasaran yang bergantung pada sasaran yang sepadan, dan kemudian laksanakan arahan badan sasaran

Anda boleh membina fail make atau Makefile make -f Makefile -f untuk menentukan Makefile mana yang hendak dilaksanakan

Makefile:

Nota: #

Sasaran boleh digantikan dengan $@

Apakah alat pembangunan linux terbenam?

Apakah alat pembangunan linux terbenam?

Apakah alat pembangunan linux terbenam?

Lagi Makefile dalam direktori peringkat:

Apakah alat pembangunan linux terbenam?

Fail Make Peringkat Atas: Master Control MakefileApakah alat pembangunan linux terbenam?

Subdirektori Makefile: Fungsi Makefile
  • direktori skrip Makefile: Fail pengepala Makefile
  • Kawalan am Makefile: Masukkan setiap subdirektori berfungsi untuk melaksanakan arahan make, dan pautkan . o fail dalam setiap subdirektori ke dalam fail boleh laku
  • Fail Make Fungsi: Susun fail .c dalam direktori semasa untuk menjana fail .o

    Fail Pengepala Makefile: Tentukan beberapa pembolehubah
Cadangan berkaitan: "

Tutorial Video Linux

Atas ialah kandungan terperinci Apakah alat pembangunan linux terbenam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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