Tôi đang sử dụng hệ thống 64 bit nhưng muốn có một bộ 32 bit nhị phân. Những tùy chọn nào tôi phải chuyển đến một kịch bản cấu hình để tạo ra một makefile 32bit/x86?Xây dựng 32 bit trên Linux 64 bit bằng cách sử dụng tập lệnh cấu hình tự động?
Trả lời
Đi qua đối số sau đây để cấu hình kịch bản cho phép tôi để xây dựng thư viện 32bit trên 64bit Linux
./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
Không hoạt động cho tôi :(Vui lòng giúp tôi tại http://stackoverflow.com/questions/13780319/cant-build-32bit-wine-on-64bit-linux – m93a
Nó không hoạt động cho tôi khi cố gắng xây dựng Nó đã cho tôi thông báo “configure: error: C++ compiler không thể tạo các file thực thi” –
Câu trả lời này không đầy đủ, đó là lý do tại sao đôi khi bạn có thể gặp lỗi "trình biên dịch không thể tạo tập tin thực thi". Xem câu trả lời của tôi trong cùng một chủ đề – volpato
Giả sử gcc/g ++:
CPPFLAGS=-m32 ./configure ...
Cảm ơn câu trả lời. Kịch bản cấu hình vẫn đặt kiểu hệ thống và kiểu hệ thống máy chủ lưu trữ thành x86_64-unknown-linux-gnu. Bạn có biết làm thế nào để ghi đè lên những? –
câu trả lời của Jack là không đầy đủ.
Bạn cần hỗ trợ trình biên dịch/libc để biên dịch 32 bit. Trong một số distro như Ubuntu, những gì bạn cần làm là cài đặt các gói gcc-multilib
và/hoặc g++-multilib
:
sudo apt-get install gcc-multilib g++-multilib
Sau đó, bạn có thể gọi cấu hình như bạn nói, specifyiong một loạt 32-bit và đi cờ biên soạn 32-bit:
./configure --host=i686-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
Nếu bạn không có multilib cài đặt, bạn sẽ nhận được một lỗi như configure: error: C compiler cannot create executables
khi đi qua các -m32
cờ.
Một số chương trình biên dịch 32 bit trên amd64 theo mặc định (ví dụ: wine,) có thể ngoài 64 bit và sẽ có thể tìm thấy multilib nếu được cài đặt.Không có vẻ là trường hợp của OP. Ngoài ra, Jack đã đúng về một điều - nó phải là '--build', không phải' --host'. '--host' nên được sử dụng nếu và chỉ khi bạn đang xây dựng trình biên dịch. Nó vẫn hoạt động vì có rất nhiều người không RTFM và viết các script sử dụng '--host' thay vì' --build', và các autotools mọi người đã phá vỡ n đủ thứ rồi. –
các gói * -multilib không tồn tại nữa trong Debian ổn định. – Braiam
Tôi đã thành công hơn bằng cách đặt trình biên dịch tùy chỉnh thay thế. Bằng cách này, tất cả các bài kiểm tra cấu hình, thậm chí là những người sử dụng CFLAGS tùy chỉnh, làm việc một cách chính xác:
./configure CC="gcc -m32" CXX="g++ -m32"
Bạn vẫn cần phiên bản 32-bit của tất cả các thư viện các ứng dụng sử dụng dĩ nhiên, vì vậy bất kỳ lỗi nào về việc thiếu các thư viện đang đề cập đến những cái 32 bit.
Một cách thay thế cho những điều được mô tả ở trên sẽ là (nếu bạn có) sử dụng trình biên dịch x86 chuyên dụng. Dòng cấu hình sau đó sẽ như thế này (tôi đặt tên cho x86-công cụ sau khi mô hình "<toolName> -x86"):
CC="/path/to/c/compiler/gcc-x86" CXX="path/to/cpp/compiler/g++-x86" LD="path/to/linker/ld-x86" ./configure
- 1. Xây dựng 32 bit với 64-bit llvm-gcc
- 2. QtCreator trên linux: 32 bit so với 64 bit
- 3. Ứng dụng 32 bit hoặc 64 bit trên hệ điều hành 64 bit?
- 4. Cấu hình Visual Studio để tạo cấu hình 32 bit và 64 bit
- 5. 64 bit bằng cách phân chia 32 bit
- 6. 32 bit int * 32 bit int = 64 bit int?
- 7. Điều kiện sử dụng tham chiếu bit 32/64 khi xây dựng trong Visual Studio
- 8. Tạo 32 bit JavaFX Native Bundle trong máy 64 bit
- 9. Xây dựng zlib libz.a cho 32 bit
- 10. Xây dựng dll 64 bit với MinGW 32 bit trong Eclipse
- 11. Không thể chạy các ứng dụng 32 bit trên Linux 64 bit
- 12. Java JDK 32 bit và 64 bit
- 13. Xác định Windows 64 bit so với 32 bit
- 14. Làm cách nào để phát hiện các cửa sổ 32 bit hoặc 64 bit khi sử dụng tập lệnh NSIS?
- 15. Chạy dll 32 bit trên máy 64 bit trong java
- 16. Biên dịch ứng dụng 32-bit bằng Visual Studio trên máy 64 bit
- 17. Cách kiểm tra hạt nhân 32 bit/64 bit cho Linux
- 18. Eclipse 32 bit chạy trên 64 bit JVM
- 19. chạy nhị phân 32 bit trên máy 64 bit
- 20. Biên dịch 32 bit Assembler trên 64 bit ubuntu
- 21. Xây dựng 64 bit trên microsoft visual C++ express 2010
- 22. Nhập 32 bit dll trong 64 bit .Net application
- 23. SDK Android 32 bit hoặc 64 bit trên hệ điều hành Windows 64 bit?
- 24. Lỗi khi xây dựng ứng dụng OS X 32 bit?
- 25. Biên dịch ứng dụng MATLAB 32 bit trên máy 64 bit (c + +)
- 26. Làm thế nào để xây dựng 32 bit python 2,6 trên 64bit Linux?
- 27. sử dụng com 32 bit thư viện trên 64 bit ứng dụng
- 28. 32-bit xử lý của địa chỉ trên 64-bit Linux
- 29. Cách xây dựng Python 64 bit trên OS X 10.6 - CHỈ 64 bit, không có vô nghĩa Universal
- 30. Chạy trên màn hình nền 32 hoặc 64 bit?
Thêm một. Tôi đang cố gắng xây dựng Git cho Solaris. 'uname -m' trả về' i86pc'. Tất cả, nhưng một trong 10 thư viện phụ thuộc quá nhiều đã làm hỏng nền tảng. Chỉ OpenSSL xác định chính xác nó là x86_64. – jww