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

Apakah perbezaan antara perpustakaan dinamik dan perpustakaan statik dalam linux

青灯夜游
青灯夜游asal
2021-11-23 11:08:506279semak imbas

Perbezaan: 1. Pustaka statik akan disambungkan kepada kod sasaran apabila atur cara disusun, dan pustaka statik tidak lagi diperlukan apabila program sedang berjalan; kod sasaran apabila atur cara disusun , tetapi dimuatkan semasa atur cara berjalan, jadi perpustakaan dinamik perlu wujud semasa program dijalankan. 2. Fail yang dijana oleh perpustakaan dinamik adalah agak kecil, manakala fail yang dihasilkan oleh perpustakaan statik agak besar.

Apakah perbezaan antara perpustakaan dinamik dan perpustakaan statik dalam linux

Persekitaran pengendalian tutorial ini: sistem CentOS 6, komputer Dell G3.

Persamaan dan perbezaan antara perpustakaan dinamik dan perpustakaan statik di Linux

Persamaan:

Kedua-dua perpustakaan statik dan perpustakaan dinamik dicipta oleh fail .o. Oleh itu, kita mesti menyusun atur cara sumber terlebih dahulu ke dalam fail .o melalui gcc; Masa adalah berbeza

Pustaka statik akan dipautkan ke kod sasaran apabila atur cara disusun, Pustaka statik tidak lagi diperlukan apabila atur cara dijalankan

Perpustakaan dinamik tidak dikaitkan dengan kod sasaran apabila program disusun, tetapi dimuatkan apabila program ini dijalankan. >

  • 2. Peraturan kompilasi yang berbeza
  • Kompilasi perpustakaan dinamik
  • Nama perpustakaan kelas dinamik ialah secara amnya libxxx.so, dan pustaka fungsi dinamik berada dalam Ia tidak disusun ke dalam kod sasaran semasa penyusunan program anda hanya memanggil fungsi yang sepadan dalam pustaka fungsi apabila ia mencapai fungsi yang berkaitan Oleh itu, fail boleh laku yang dihasilkan oleh dinamik perpustakaan fungsi agak kecil;

Dinamik Semasa menyusun pustaka: Yang paling penting ialah pilihan pada baris arahan GCC, -shared Pilihan ini menentukan untuk menjana perpustakaan pautan dinamik, contohnya:

    g -shared -o libd1.so d1.o /*Buat fail perpustakaan dinamik d1.so berdasarkan fail sasaran perantaraan d1.o*/
  • g -shared -o libd2.so d2.o /*Buat fail perpustakaan dinamik d2 berdasarkan fail sasaran perantaraan d2.o so*/

Kompilasi perpustakaan statik

Nama bagi. perpustakaan kelas umumnya libxxx.a; fail yang disusun menggunakan perpustakaan fungsi statik adalah agak besar, kerana keseluruhan perpustakaan fungsi Semua data akan disepadukan ke dalam kod sasaran, dan kelebihannya adalah jelas, iaitu, program pelaksanaan yang disusun tidak memerlukan sokongan perpustakaan fungsi luaran, kerana semua fungsi yang digunakan telah disusun dalam. Sudah tentu, ini juga akan menjadi kelemahannya, kerana jika perpustakaan fungsi statik berubah, program anda mesti dikompilasi semula.

Dalam UNIX, gunakan perintah ar untuk mencipta atau mengendalikan perpustakaan statik

ar archivefile objfile
  • archivefile: archivefile ialah nama pustaka statik
objfile :objfile ialah nama fail sasaran perantaraan dengan sambungan .o, yang boleh berbilang secara selari; : "

Tutorial Video Linux

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