Проблема в том, что STDC_HEADERS не определяется при компиляции кода. См. Строку 47 этой версии regex.c . Вероятно, это произошло потому, что вы не запустили configure
или выполнили его, но что-то пошло не так.
Если вы не запускали configure, просто запустите его:
./configure
Если вы все же запустите, он должен сгенерировать файл с именем config.h
, который должен использовать #define
для определения макроса STDC_HEADERS
некоторого значения. В противном случае возможно, что в используемом компиляторе отсутствует что-то, от чего он зависит (например, файлы заголовков системы), либо он настроен или неправильно установлен.
Как я уже упоминал в комментарии выше, выпуску binutils, который вы используете, уже более 4 лет , и я думаю, вам следует использовать более новую версию.
Чтобы найти все пути к каталогам от текущего каталога вниз, которые содержат определенную строкуtpcc
:
find. -type d -path '*tpcc*'
Предикат -path
будет сопоставлять шаблон с именами путей, с которыми встречается find
, и, если он соответствует шаблону, будет напечатан текущий путь.
Если вы не хотите чтобы шаблон совпадал в конце текущего имени пути, вместо этого используйте *tpcc*/*
в качестве шаблона. Сопоставление /
где-то после tpcc
приведет к тому, что find
найдет каталоги строго ниже любого каталога, имя которого содержит tpcc
.
-type d
ограничивает поиск только каталогами.
Хотели бы вы обернуть это в простую в использовании функцию оболочки:
pathfind () {
case $# in
1) # only a string was given
searchpath=.
searchstring=$1
;;
2) # search path and string was given
searchpath=$1
searchstring=$2
;;
*) # anything else is an error
echo 'Expected one or two arguments' >&2
return 1
esac
find "$searchpath" -type d -path "*$searchstring*"
}
Вы можете использовать это как
pathfind tpcc
или как
pathfind /some/path tpcc
или
pathfind /some/path 'tpcc*/'
Задача, которую вы описываете, была бы удовлетворена
find. -type d | grep tpcc
, но это также будет список каталогов «ветвей», а не только «конечных» каталогов:
/home/arghy/sampledir1/tpcc-uva
/home/arghy/sampledir1/tpcc-uva/subdir1
/home/arghy/sampledir1/tpcc-uva/subdir1/subdir2
Это нормально или вы хотите пропустить каталоги с большим количеством подкаталогов внутри?