รุ่น sed ไม่ถูกต้องเมื่อรวบรวมบน OSX


2

ฉันพยายามติดตั้งcrosstool-ngบน OSX 10.6.8 ที่ระยะการกำหนดค่าฉันทำงาน./configure --prefix=/opt/crossและฉันได้ผลลัพธ์ต่อไปนี้:

! ./configure --prefix=/opt/cross
checking build system type... x86_64-apple-darwin10.8.0
checking host system type... x86_64-apple-darwin10.8.0
checking for a BSD-compatible install... /opt/local/bin/ginstall -c
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking whether sed understands -r -i -e... no
configure: error: 

ดูเหมือนว่าsedควรยอมรับ-rว่าเป็นข้อโต้แย้ง แต่ไม่ใช่ การดูsed ที่นี่ ยังแนะนำว่า-rเป็นอาร์กิวเมนต์ที่ถูกต้อง แต่เมื่อฉันเรียกใช้man sedฉันไม่คิดว่ารุ่นของฉันอนุญาตให้ทำสิ่งนี้:

SED(1)                    BSD General Commands Manual                   SED(1)

NAME
     sed -- stream editor

SYNOPSIS
     sed [-Ealn] command [file ...]
     sed [-Ealn] [-e command] [-f command_file] [-i extension] [file ...]

ระบบของฉันมีรุ่นที่ไม่ถูกต้องsedหรือไม่? ฉันจะทำอย่างไรเพื่อให้sedเข้ากันได้กับcrosstool-ngฉัน

คำตอบ:


2

GNU seduses -rและ OSX ' BSD seduses -Eเพื่อเปิดใช้งานนิพจน์ทั่วไปที่ขยายเพิ่ม GNU sed ยังเข้าใจ-Eซึ่งเป็นคุณลักษณะที่ไม่มีเอกสาร แต่ sed BSD -rไม่เข้าใจ ดังนั้นคุณจึงจำเป็นที่จะต้องติดตั้ง GNU sed การเปลี่ยนแปลงเส้นทางการค้นหาครั้งแรกและชั่วคราวของคุณเพื่อให้กำหนดค่าเห็นมันเป็นครั้งแรกหรือบางทีคุณอาจจะลองสร้างเสื้อคลุมรอบ SED เพื่อให้ได้รับการแปลเป็น-r -Eถ้าอย่างนั้นก็ยังอาจไม่ทำงานเพราะ-iตัวเลือกใช้งานแตกต่างกันเล็กน้อย ..

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.