Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah perbezaan antara pautan dinamik dan pautan statik dalam linux

Apakah perbezaan antara pautan dinamik dan pautan statik dalam linux

青灯夜游
青灯夜游asal
2022-02-25 16:02:403674semak imbas

Perbezaan: 1. Pautan statik dilakukan sebelum atur cara boleh laku dibentuk, manakala pautan dinamik dilakukan apabila atur cara dilaksanakan; 2. Kelajuan pemuatan kod perpustakaan pautan statik adalah lebih pantas, dan kelajuan pelaksanaan adalah lebih tinggi sedikit daripada perpustakaan pautan dinamik Perpustakaan pautan adalah pantas 3. Berbanding dengan pemautan dinamik, fail boleh laku yang dihasilkan oleh pemautan statik.

Apakah perbezaan antara pautan dinamik dan pautan statik dalam linux

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

Pautan dinamik dan pautan statik dalam linux

Proses penyusunan dan pemautan

Kompilasi terbahagi kepada Langkah 3: Pertama, praproses fail sumber Proses ini terutamanya memproses beberapa perintah atau pernyataan yang ditakrifkan oleh # (seperti makro, #include, arahan prapenyusun #ifdef, dll.) untuk menjana fail *.i; ini Proses ini terutamanya untuk melakukan analisis leksikal, analisis sintaks dan analisis semantik untuk menjana *.s fail pemasangan akhirnya, pemasangan dijalankan Proses ini agak mudah, iaitu untuk menterjemah arahan pemasangan yang sepadan ke dalam arahan mesin dan menjana a fail sasaran binari yang boleh dipindahkan.

Dua cara memaut

  • Pautan statik

  • Pautan dinamik

Perbezaan terbesar antara pemautan statik dan pemautan dinamik ialah pemasaan pemautan adalah berbeza Pemautan statik dilakukan sebelum atur cara boleh laku dibentuk, manakala pemautan dinamik dilakukan apabila atur cara dilaksanakan.

Kelebihan perpustakaan pautan statik

a): Kelajuan pemuatan kod adalah pantas, dan kelajuan pelaksanaan lebih pantas sedikit daripada perpustakaan pautan dinamik

b ): Hanya Ia adalah perlu untuk memastikan bahawa terdapat fail .lib yang betul dalam komputer semasa pembangunan Apabila menerbitkan program dalam bentuk binari, tidak perlu mempertimbangkan sama ada terdapat masalah versi dengan fail .lib pada pengguna. komputer Ini boleh mengelakkan masalah seperti DLL Hell.

Kelebihan perpustakaan pautan dinamik

a) Menjimatkan lebih banyak memori dan mengurangkan pertukaran halaman

b) Fail DLL adalah bebas daripada fail EXE, seperti selagi ia adalah output Antara muka kekal tidak berubah, iaitu nama, parameter, jenis nilai pulangan dan konvensyen panggilan kekal tidak berubah >

c) Program yang ditulis dalam bahasa pengaturcaraan yang berbeza boleh memanggil fungsi DLL yang sama asalkan mengikut konvensyen panggilan fungsi

d) Ia sesuai untuk pembangunan perisian berskala besar, menjadikan proses pembangunan bebas dan kurang digabungkan, menjadikannya lebih mudah untuk pembangunan yang berbeza dan ujian berlaku antara pembangun dan organisasi pembangunan.

Kelemahan

a) Fail boleh laku yang dijana menggunakan pemautan statik adalah lebih besar dan mengandungi kod biasa yang sama, menyebabkan pembaziran

b) Aplikasi yang gunakan pustaka pautan dinamik tidak lengkap, dan modul DLL yang mereka bergantung juga mesti wujud Jika pemautan dinamik pada masa muat digunakan dan DLL didapati tidak wujud apabila program dimulakan, sistem akan menamatkan program dan. memberikan mesej ralat. Dengan pemautan dinamik masa jalan, sistem tidak akan ditamatkan, tetapi program akan gagal dimuatkan kerana fungsi yang dieksport dalam DLL tidak tersedia; Apabila modul dikemas kini, jika modul baharu tidak serasi dengan modul lama, semua perisian yang memerlukan modul dijalankan akan tercabut. Ini adalah perkara biasa pada Windows awal.

Cadangan berkaitan: "

Tutorial Video Linux"

Atas ialah kandungan terperinci Apakah perbezaan antara pautan dinamik dan pautan statik 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