Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah proses penjanaan fail s di bawah linux dipanggil?

Apakah proses penjanaan fail s di bawah linux dipanggil?

青灯夜游
青灯夜游asal
2022-06-17 11:46:253908semak imbas

Proses menjana fail s di bawah Linux dipanggil "kompilasi". Pengkompil gcc dalam Linux akan melakukan analisis sintaks, analisis semantik dan pengoptimuman pada fail ".i" yang telah dipraproses untuk menjana fail kod pemasangan (fail ".s" Sintaks pelaksanaan ialah "nama fail gcc -S.i - o). nama fail.s"; kemudian pemasang akan menukar fail kod pemasangan menjadi fail objek perantaraan; akhirnya pemaut ld akan memautkan fail objek dengan perpustakaan pautan statik yang diperlukan dan perpustakaan pautan dinamik untuk menjadi fail boleh laku.

Apakah proses penjanaan fail s di bawah linux dipanggil?

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Proses menyusun fail C menjadi fail boleh laku di bawah Linux

Menggunakan gcc untuk menyusun fail C menjadi fail boleh laku boleh dibahagikan ke dalam Ia adalah empat langkah: pra-penyusunan, penyusunan, pemasangan, dan sambungan.

1. Prakompil (hasilkan .i fail)

Cpp prapenyusun menyusun fail sumber dan fail pengepala yang berkaitan (seperti dalam contoh kod Pengepala fail stdio.h) diprakompilkan ke dalam fail .i.

Perintah dilaksanakan: gcc -E 文件名.c -o 文件名.i

Fungsi prapengumpulan:

a Memproses semua arahan prapengumpulan "#include"

b. define" arahan, padamkan semua "#define" dalam kod dan kembangkan semua takrifan makro

c, proses semua arahan prakompilasi bersyarat, seperti #if #elif #else # ifdef #ifnodef #endif, dsb.

d, padamkan semua ulasan

e, tambah nombor baris dan pengenalan nama fail, supaya maklumat segera akan diberikan apabila ralat berlaku

2 🎜> Compile (jana .s<span style="color: rgb(255, 0, 0);">.s</span> fail)

compiler gcc praproses Fail akhir tertakluk kepada sintaks analisis, analisis semantik dan pengoptimuman untuk menjana fail kod pemasangan.

Arahan yang dilaksanakan: gcc -S 文件名.i -o 文件名.s

3 Himpunan (jana fail .o)

Penghimpun menukarkan fail kod pemasangan menjadi sasaran perantaraan. Perintah yang dilaksanakan oleh fail

: gcc -c 文件名.s -o 文件名.o (Nota: Ini huruf kecil -c, bukan huruf besar -C. Saya terpijak perangkap di sini dan pengecualian berlaku)

4. Pautan (jana fail boleh laku)

Penyambung ld memautkan fail sasaran dengan semua fail sasaran tambahan yang diperlukan (seperti perpustakaan pautan statik, perpustakaan pautan dinamik) untuk menjadi boleh laku Perintah yang dilaksanakan oleh fail

: gcc 文件名.o -o 文件名

Contoh menyusun fail c ke dalam fail boleh laku di bawah Linux

1 Fail C

Dalam mod baris arahan, masukkan: vim hello.c

untuk memasuki mod penyuntingan, masukkan kod berikut:

#include<stdio.h>

int main(void){
    printf("Hello World!\n");
    return 0;
}

Mula-mula klik Kekunci ESC untuk keluar dari mod pengeditan, kemudian masukkan: wq (perhatikan titik bertindih semasa menaip) untuk kembali ke baris arahan.

2. Susun

Kompilasi fail C ke dalam fail boleh laku

Arahan untuk dilaksanakan: gcc hello.c -o hello

Masukkan Perintah ls , anda boleh melihat bahawa terdapat fail tambahan dalam folder semasa: hello

3 Laksanakan

dan laksanakan: ./hello

untuk mengeluarkan hello World!

Cadangan berkaitan: "

Tutorial Video Linux"

Atas ialah kandungan terperinci Apakah proses penjanaan fail s di bawah linux dipanggil?. 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