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?

1 ответ1

2

GNU sed использует -r а OSX ' BSD sed использует -E для включения расширенных регулярных выражений. GNU sed также понимает -E что является недокументированной функцией, но BSD sed не понимает -r . Таким образом, вам сначала нужно будет установить GNU sed и временно изменить путь поиска, чтобы сначала его увидел конфигуратор, или, возможно, вы можете попробовать создать оболочку вокруг sed, чтобы -r переведен в -E . Тогда он все еще может не работать, потому что опция -i работает немного по-другому ..

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .