GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Portabel Apakah Biner Dikompilasi Di Ubuntu?

Judulnya mengatakan itu semua, sebenarnya. Tapi izinkan saya untuk menentukan pertanyaannya:

Dengan asumsi saya mengkompilasi aplikasi yang menggunakan libffi, libGL, dlfcn, dan SDL, apakah biner akan berjalan di distribusi Linux lain dengan arsitektur yang sama, dll?

Alasan saya bertanya adalah karena direktori /usr/lib/i386-linux-gnu – Saya mungkin salah, tetapi saya menganggap direktori ini agak spesifik untuk Ubuntu, bukan?

Jadi, seberapa portabelkah binari dikompilasi di Ubuntu?

Jawaban yang Diterima:

Saat Anda mengkompilasi biner, katakan, nginx dari kode sumber, itu dibangun dengan informasi mengenai versi perpustakaan apa yang ada di sistem yang mengkompilasi binari. Pustaka untuk referensi tentu saja ditentukan oleh argumen (untuk nginx , itu definisi modul mana yang mau diaktifkan atau tidak). Tetapi biner yang Anda buat akan (tidak mungkin) berjalan pada sistem yang terpisah, kecuali jika sistem tersebut dikonfigurasi secara identik.

Anda ingin mengompilasi aplikasi pada setiap sistem individual, (relatif) kemungkinan Anda tidak akan dapat mem-porting versi terkompilasi ke sistem lain yang mungkin tidak memiliki versi yang kompatibel untuk setiap perpustakaan.

Catatan:Selagi Anda bisa mendapatkan biner untuk port ke sistem Linux lain, yang keliru dan biasanya memakan waktu. Ini karena:
(1) Anda perlu memastikan sistem tempat Anda akan memindahkan biner menggunakan versi libc yang sama yang digunakan untuk mengkompilasi biner
(2) Anda perlu memastikan bahwa pustaka yang digunakan dalam program dapat dideteksi dengan mudah di sistem Anda, dan versinya sama (atau kompatibel) seperti yang digunakan untuk membuat program.

…dan tentu saja variabel lain yang perlu dipertimbangkan. Hanya saja dalam jangka panjang lebih mudah untuk mengkompilasi program pada setiap sistem untuk menggunakannya daripada berusaha keras untuk portabilitas.


Ubuntu
  1. Cara Menginstal Gradle di Ubuntu 18.04

  2. Cara Menginstal Elasticsearch di Ubuntu 20.04

  3. Cara menonaktifkan layanan di Ubuntu

  1. Cara Menginstal Ubuntu Bersama Windows 10

  2. Cara Mengatur Pembaruan Otomatis di Ubuntu 18.04

  3. Cara Menginstal OpenProject di Ubuntu 16.04

  1. Cara Menginstal ApostropheCMS di Ubuntu 18.04 LTS

  2. Cara Mem-boot Ulang Ubuntu 20.04 LTS

  3. Cara Menginstal Django di Ubuntu 20.04