Sự cố khi biên dịch nhị phân 32 bit trên máy 64 bit


13

Tôi đang cố gắng biên dịch chương trình ac dưới dạng nhị phân 32 bit thay vì 64 bit. Tôi bắt đầu bằng cách chỉ cần thêm -m32và có một số lỗi. Đi loanh quanh một chút tôi bắt gặp một ghi chú để cài đặt ia32-libs. Chạy apt-get install ia32-libsdẫn đến một thông báo cho biết nó đã được cài đặt và ở phiên bản mới nhất.

Có một chuỗi các thư viện, mỗi thư viện bao gồm cả thư viện tiếp theo cho đến khi thất bại:

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

Nó dường như bao gồm các phiên bản 32 bit khác bao gồm /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...

Tôi đang thiếu gì?

Câu trả lời:


39

Câu trả lời của Lekensteyn đã mâu thuẫn với rất nhiều gói hiện có đối với tôi (trên chế độ một chiều 64 bit).

Tôi thay vào đó đã làm điều này, mà kéo trong libc6-dev-i386gói:

apt-get install gcc-multilib

7

ia32-libschỉ chứa một số thư viện tương thích chưa được di chuyển sang Multi Arch. Để biên dịch thư viện 32 bit, bạn cần cài đặt thư viện 32 bit và tệp phát triển cho C:

sudo apt-get install libc6-dev:i386

Xem thêm: Tính năng multiarch trong 11.10 có nghĩa là cái chết của lực lượng - cài đặt kiến ​​trúc?


Cài đặt libc6-dev:i386khăng khăng xóa toàn bộ bộ trình biên dịch gnu (khiến tôi bị đau tim một chút) nhưng sau khi sử dụng sudo apt-get install build-essentialmọi thứ đã hoạt động hoàn hảo.
Matt

Đối với tôi, nó cũng gỡ cài đặt nvidia-current ... được cài đặt lại mà không gặp vấn đề gì.
Jeff

1
Lưu ý rằng tùy chọn được cung cấp bởi alberge có vẻ tốt hơn ở chỗ nó sẽ không xóa hàng tấn thứ khác để cài đặt thư viện 32 bit.
Fabio Zadrozny
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.