Kesulitan mengkompilasi biner 32 bit pada mesin 64 bit

13

Saya mencoba mengkompilasi program ac sebagai biner 32 bit, bukan 64 bit. Saya mulai dengan hanya menambahkan -m32dan mendapat beberapa kesalahan. Googling sekitar sedikit saya menemukan catatan untuk menginstal ia32-libs. Berjalan apt-get install ia32-libsmenghasilkan pemberitahuan bahwa itu sudah diinstal dan pada versi terbaru.

Ada rantai perpustakaan masing-masing termasuk yang berikutnya sampai gagal:

/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory

Tampaknya akan termasuk versi 32 bit yang lain termasuk /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...

Apa yang saya lewatkan?

Mat
sumber

Jawaban:

39

Jawaban Lekensteyn bertentangan dengan banyak paket yang ada untuk saya (pada 64 bit bitiric).

Saya malah melakukan ini, yang menarik dalam libc6-dev-i386paket:

apt-get install gcc-multilib
AB
sumber
7

ia32-libshanya berisi beberapa pustaka kompatibilitas yang belum dimigrasi ke Multi Arch. Untuk mengkompilasi perpustakaan 32-bit, Anda perlu menginstal perpustakaan 32-bit dan file pengembangan untuk C:

sudo apt-get install libc6-dev:i386

Lihat juga: Apakah fitur multiarch di 11.10 berarti kematian kekuatan - arsitektur dipasang?

Lekensteyn
sumber
Instalasi libc6-dev:i386bersikeras menghapus seluruh kompiler gnu suite (yang memberi saya sedikit serangan jantung) tetapi setelah menggunakan sudo apt-get install build-essentialsemuanya bekerja dengan sempurna.
Matt
Bagi saya, itu juga menghapus nvidia-saat ini ... diinstal ulang tanpa masalah sekalipun.
Jeff
1
Perhatikan bahwa opsi yang diberikan oleh alberge tampaknya lebih baik karena tidak akan menghapus banyak hal lain untuk menginstal pustaka 32-bit.
Fabio Zadrozny