Saya menginstal Ubuntu 14.04 (Trusty Tahr) kemarin. Segalanya tampak baik-baik saja. Tetapi ketika saya mencoba mengkompilasi beberapa kode C, saya menemukan kesalahan berikut. Kesalahan tampaknya disebabkan oleh OS yang kurang mendukung arsitektur 32-bit. Output kesalahannya adalah sebagai berikut:
/usr/bin/ld: i386 architecture of input file `./libsc.a(ftl_msg.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_debug.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_str.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_cfg_common.o)' is incompatible with i386:x86-64 output
Saya dulu apt-get install ia32-libs
ketika saya menggunakan Ubuntu 12.04 (Precise Pangolin). Tapi yang saya tahu adalah Ubuntu telah menghapus ia32-libs sejak Ubuntu 13.10 (Saucy Salamander). Bagaimana cara memperbaiki masalah ini?
gcc -m32 helloworld.c
. Semoga berhasil.Jawaban:
Anda dapat mencoba ini untuk menginstal pustaka 32-bit (tidak semua di ia32-libs):
sudo dpkg --add-architecture i386
mungkin diperlukan (jika Anda belum pernah menjalankannya).Atau jika Anda ingin menginstal seluruh ia32-lib, coba urutan berikut:
PS: Dengan cara ini, Anda dapat menginstal
ia32-libs
. Namun, kami menambahkan sumber 13.04, jadi, mungkin ada beberapa masalah yang tidak diketahui. Setelah menginstalia32-libs
, saya sarankan Anda untuk menghapusia32-libs-raring.list
dalam/etc/apt/sources.list.d
, dan melakukansudo apt-get update
.Jika Anda ingin memperbaiki ketergantungan SDK Android, Anda dapat mencoba ini di bawah ini:
sudo apt-get install -y libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1
sumber
apt-get update
. Jadi saya mengubah sumber paket menjadideb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multi verse
. Sekarang berhasil.Instal beberapa pustaka gcc.
sumber
libstdc++6-4.7-dev:i386
diperlukan untuk mengekstrak mesin virtual Internet Explorer dari www.modern.iesudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
Jawaban terbaik yang pernah saya lihat adalah Bagaimana cara menjalankan aplikasi 32-bit di Ubuntu 64-bit?
sumber
Saya akhirnya mendapatkannya! Inilah cara saya, dan saya harap ini dapat membantu Anda :)
Saya tidak tahu alasan mengapa saya perlu menginstal ini, tetapi berfungsi di komputer saya. Setelah Anda selesai menginstal paket-paket ini, inilah saatnya untuk mencoba. Oh ya, saya perlu memberi tahu Anda. Kali ini ketika Anda ingin mengkompilasi kode Anda, Anda harus menambahkan
-m32
setelahgcc
, misalnya:gcc -m32 -o hello helloworld.c
. Hanyamake clean
danmake
lagi. Semoga beruntung teman.PS: lingkungan saya adalah: Ubuntu 14.04 64-bit (Trusty Tahr) dan GCC versi 4.8.4. Saya telah menulis solusinya di blog saya, tetapi dalam bahasa Cina :-) - Cara kompas program 32bit di bawah ubuntu14.04 .
sumber
Perpustakaan alternatif ini berfungsi untuk saya:
sumber
Saya memiliki masalah yang sama seperti di atas dan Eclipse menyarankan untuk menginstal:
Ketika saya mencoba menginstal ia32-libs, Ubuntu diminta untuk menginstal tiga paket lainnya:
Dengan Android Studio dan intellij, saya juga harus menginstal versi 32bit dari libstdc ++ 6:
sumber
lib32z1
tak ternilai harganyaBagi saya, saya harus lari
sebelum menjalankan jawaban Mike Tang. Jika tidak, saya tidak dapat menginstal ia32-libs.
sumber
Cukup instal program versi 32-bit, bukan versi 64-bit.
Ini jauh lebih aman daripada menginstal paket yang tidak dimaksudkan untuk distribusi yang ada.
Saya mendapat saran ini dari petunjuk instalasi Google Earth untuk Ubuntu 14.04 . Google Earth dulu menggunakan
ia32-libs
Ubuntu 12.04 64-bit.Mengutip webupd8.org :
Masalah dengan beberapa program (seperti Google Earth) adalah paket 32-bit tidak mendukung multiarch. Akibatnya, beberapa dependensi 32-bit perlu diinstal secara manual untuk menjalankan program versi 32-bit di Ubuntu 64-bit.
sumber
Jika Anda berada di China, Anda dapat memodifikasi "raring" menjadi "presisi" (untuk Ubuntu 13.04 (Raring Ringtail) dan Ubuntu 12.04 LTS (Precise Pangolin) ). Saya menginstal Beyond Compare di Ubuntu 14.04 (Trusty Tahr).
sumber
Masalahnya adalah dalam banyak kasus, paket sudah multiarch sehingga paket i386 tidak tersedia, tetapi paket lain masih bergantung pada paket i386 saja. Ini adalah masalah di repositori, dan manajer repo harus memperbaikinya
sumber
Solusinya adalah menambahkan cara paket Debian yang sesuai ke repositori Anda. Untuk ini, ketik perintah di bawah ini:
Baris pertama menulis di akhir
sources.list
file dengan cara paket. Ini berhasil untuk saya. Saya berharap itu membantu Anda.sumber