<ก่อนหน้านี้ | Contents | ถัดไป>
5.9.1. การติดตั้งไบนูทิลส์
สร้างไดเร็กทอรีบิลด์แยกต่างหากอีกครั้ง:
mkdir -v บิลด์ซีดี
mkdir -v บิลด์ซีดี
เตรียม Binutils สำหรับการรวบรวม:
ซีซี=$LFS_TGT-gcc \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-รันลิบ \
../กำหนดค่า \
--prefix=/เครื่องมือ \
--disable-nls \
--disable-werror \
--with-lib-path=/tools/lib \
--ด้วย-sysroot
ซีซี=$LFS_TGT-gcc \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-รันลิบ \
../กำหนดค่า \
--prefix=/เครื่องมือ \
--disable-nls \
--disable-werror \
--with-lib-path=/tools/lib \
--ด้วย-sysroot
ความหมายของตัวเลือกการกำหนดค่าใหม่:
CC=$LFS_TGT-gcc AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib
เนื่องจากนี่เป็นบิวด์ดั้งเดิมของ Binutils การตั้งค่าตัวแปรเหล่านี้ทำให้มั่นใจได้ว่าระบบบิลด์ใช้ cross-compiler และเครื่องมือที่เกี่ยวข้องแทนอันบนระบบโฮสต์
--with-lib-path=/tools/lib
สิ่งนี้จะบอกสคริปต์กำหนดค่าให้ระบุเส้นทางการค้นหาไลบรารีระหว่างการคอมไพล์ Binutils ซึ่งส่งผลให้ / เครื่องมือ / lib ถูกส่งผ่านไปยังตัวเชื่อมโยง สิ่งนี้จะป้องกันไม่ให้ตัวเชื่อมโยงค้นหาผ่านไดเร็กทอรีไลบรารีบนโฮสต์
--ด้วย-sysroot
คุณลักษณะ sysroot ช่วยให้ตัวเชื่อมโยงสามารถค้นหาวัตถุที่ใช้ร่วมกันซึ่งจำเป็นสำหรับวัตถุที่ใช้ร่วมกันอื่น ๆ ที่รวมอยู่ในบรรทัดคำสั่งของตัวเชื่อมโยงอย่างชัดเจน หากไม่มีสิ่งนี้ บางแพ็คเกจอาจไม่สามารถสร้างได้สำเร็จบนบางโฮสต์
รวบรวมแพ็คเกจ:
ทำ
ทำ
ติดตั้งแพ็คเกจ:
ให้ติดตั้ง
ให้ติดตั้ง
ตอนนี้เตรียมตัวเชื่อมโยงสำหรับระยะ "การปรับใหม่" ในบทถัดไป:
ทำให้ -C สะอาด
ทำให้ -C ld LIB_PATH=/usr/lib:/lib cp -v ld/ld-new /tools/bin
ทำให้ -C สะอาด
ทำให้ -C ld LIB_PATH=/usr/lib:/lib cp -v ld/ld-new /tools/bin
ความหมายของพารามิเตอร์ make:
-C สะอาด
เป็นการบอกให้โปรแกรม make ลบไฟล์ที่คอมไพล์แล้วทั้งหมดใน ld ไดเร็กทอรีย่อย
-C ld LIB_PATH=/usr/lib:/lib
ตัวเลือกนี้จะสร้างทุกอย่างขึ้นมาใหม่ ld ไดเรกทอรีย่อย โดยระบุ LIB_PATH ตัวแปร Makefile บนบรรทัดคำสั่งช่วยให้เราสามารถแทนที่ค่าเริ่มต้นของเครื่องมือชั่วคราวและชี้ไปยังเส้นทางสุดท้ายที่เหมาะสม ค่าของตัวแปรนี้ระบุเส้นทางการค้นหาไลบรารีเริ่มต้นของตัวเชื่อมโยง การเตรียมการนี้จะใช้ในบทถัดไป