<Trước | Nội dung | Tiếp theo>
5.7.1. Cài đặt Glibc
Tài liệu Glibc khuyên bạn nên xây dựng Glibc trong một thư mục xây dựng chuyên dụng:
mkdir -v xây dựng cd xây dựng
mkdir -v xây dựng cd xây dựng
Tiếp theo, chuẩn bị Glibc để biên dịch:
../cấu hình \
--prefix = / tools \
--host = $ LFS_TGT \
--build = $ (../ scripts / config.guess) \
--enable-kernel = 3.2 \
--with-headers = / tools / include
../cấu hình \
--prefix = / tools \
--host = $ LFS_TGT \
--build = $ (../ scripts / config.guess) \
--enable-kernel = 3.2 \
--with-headers = / tools / include
Ý nghĩa của các tùy chọn cấu hình:
--host = $ LFS_TGT, --build = $ (../ scripts / config.guess)
Hiệu quả tổng hợp của các công tắc này là hệ thống xây dựng của Glibc tự định cấu hình để biên dịch chéo, sử dụng trình liên kết chéo và trình biên dịch chéo trong /công cụ.
--enable-kernel = 3.2
Điều này yêu cầu Glibc biên dịch thư viện với sự hỗ trợ cho hạt nhân Linux 3.2 trở lên. Các giải pháp thay thế cho các hạt nhân cũ hơn không được kích hoạt.
--with-headers = / tools / include
Điều này yêu cầu Glibc tự biên dịch dựa trên các tiêu đề được cài đặt gần đây vào thư mục công cụ, để nó biết chính xác hạt nhân có những tính năng nào và có thể tự tối ưu hóa cho phù hợp.
Trong giai đoạn này, cảnh báo sau có thể xuất hiện:
cấu hình: CẢNH BÁO:
*** Các chương trình bổ trợ này bị thiếu hoặc
*** phiên bản không tương thích: msgfmt
*** một số tính năng sẽ bị vô hiệu hóa.
*** Kiểm tra tệp CÀI ĐẶT để biết các phiên bản cần thiết.
cấu hình: CẢNH BÁO:
*** Các chương trình bổ trợ này bị thiếu hoặc
*** phiên bản không tương thích: msgfmt
*** một số tính năng sẽ bị vô hiệu hóa.
*** Kiểm tra tệp CÀI ĐẶT để biết các phiên bản cần thiết.
Thiếu hoặc không tương thích tin nhắn chương trình nói chung là vô hại. Cái này tin nhắn chương trình là một phần của gói Gettext mà bản phân phối máy chủ lưu trữ sẽ cung cấp.
Lưu ý
Đã có báo cáo rằng gói này có thể bị lỗi khi xây dựng như một "chế tạo song song". Nếu điều này xảy ra, hãy chạy lại lệnh make với tùy chọn "-j1".
Lưu ý
Đã có báo cáo rằng gói này có thể bị lỗi khi xây dựng như một "chế tạo song song". Nếu điều này xảy ra, hãy chạy lại lệnh make với tùy chọn "-j1".
Biên dịch gói:
làm cho
làm cho
Cài đặt gói:
thực hiện cài đặt
thực hiện cài đặt
Phạt cảnh cáo
Tại thời điểm này, bắt buộc phải dừng lại và đảm bảo rằng các chức năng cơ bản (biên dịch và liên kết) của chuỗi công cụ mới đang hoạt động như mong đợi. Để thực hiện kiểm tra độ tỉnh táo, hãy chạy các lệnh sau:
echo 'int main () {}'> dummy.c
$ LFS_TGT-gcc dummy.c
readelf -l a.out | grep ': / tools'
echo 'int main () {}'> dummy.c
$ LFS_TGT-gcc dummy.c
readelf -l a.out | grep ': / tools'
Nếu mọi thứ hoạt động bình thường, sẽ không có lỗi và đầu ra của lệnh cuối cùng sẽ có dạng:
[Yêu cầu trình thông dịch chương trình: /tools/lib64/ld-linux-x86-64.so.2]
[Yêu cầu trình thông dịch chương trình: /tools/lib64/ld-linux-x86-64.so.2]
Lưu ý rằng đối với máy 32-bit, tên thông dịch viên sẽ là /tools/lib/ld-linux.so.2.
Nếu đầu ra không được hiển thị như trên hoặc không có đầu ra nào cả, thì có gì đó không ổn. Điều tra và kiểm tra lại các bước để tìm ra vấn đề ở đâu và khắc phục nó. Vấn đề này phải được giải quyết trước khi tiếp tục.
Khi tất cả đều ổn, hãy dọn dẹp các tệp thử nghiệm:
rm -v dummy.c a.out
rm -v dummy.c a.out
Lưu ý
Xây dựng Binutils trong phần tiếp theo sẽ đóng vai trò như một kiểm tra bổ sung để đảm bảo chuỗi công cụ đã được xây dựng đúng cách. Nếu Binutils không tạo được, thì đó là dấu hiệu cho thấy có điều gì đó không ổn với các cài đặt Binutils, GCC hoặc Glibc trước đó.
Lưu ý
Xây dựng Binutils trong phần tiếp theo sẽ đóng vai trò như một kiểm tra bổ sung để đảm bảo chuỗi công cụ đã được xây dựng đúng cách. Nếu Binutils không tạo được, thì đó là dấu hiệu cho thấy có điều gì đó không ổn với các cài đặt Binutils, GCC hoặc Glibc trước đó.
<Trước | Nội dung | Tiếp theo>