Скрипт настройки cgminer не может найти установленную libusb

Я пытаюсь собрать cgminer в системе RISC-V 64. Я отлично скомпилировал его на aarch64 (Raspberry pi).

После установки libusb-dev и libusb1.1-1.dev и запуска ldconfig я все еще получаю эту ошибку из сценария настройки:

          checking whether NULL can be used in arbitrary expressions... yes^M
    checking for egrep... (cached) /usr/bin/grep -E^M
    checking for syslog.h... yes^M
    checking for size_t... yes^M
    checking for working alloca.h... yes^M
    checking for alloca... yes^M
    checking for pthread_create in -lpthread... yes^M
    checking for library containing addstr... -lncurses^M
    ./configure: line 10668: syntax error near unexpected token `LIBUSB,'^M
    ./configure: line 10668: `                      PKG_CHECK_MODULES(LIBUSB, libusb-1.0, AC_DEFINE(HAVE_LIBUSB, 1, [Define if you have libusb-1.0]), AC_MSG_ERROR([Could not find usb library - please install libusb-1.0]))'

В разные моменты до этого autogen.sh предлагал мне повторно запустить автообновление, что я и сделал. Скрипт autogen.sh вообще дорабатываться тоже не хотел.

Кто-нибудь раньше видел синтаксическую ошибку в автоматически сгенерированном скрипте конфигурации?

1 ответ

Сценарий был сгенерирован в системе без установленного файла, поэтому макрос не был расширен в код оболочки, а сгенерированный сценарий не работает, поскольку содержит синтаксис, отличный от оболочки.

(Присутствие^Mсимволы также указывают на какую-то странность окончания строки Windows, которая может стать, а может и не стать реальной проблемой, как только вы исправите ошибку.)

Исправление правильного расширения макроса состоит из двух частей:

  • Вышестоящий cgminer должен исправить файл, включив в него строку

            m4_pattern_forbid([PKG_CHECK_MODULES])dnl
    

    Строка передPKG_CHECK_MODULES([LIBUSB], ...)линия будет хорошим местом для этого.

    Это делает невозможным повторное создание такого испорченного файла.

  • Вы можете установить и перезапуститьautoreconfрегенерировать из . Затем он будет расширен до правильного шелл-кода, который сможет работать по назначению.

    pkg.m4вероятно, является частью-devили-m4подпакет разработки дляpkgconfилиpkgconfigупаковка.

Это всегда хорошая идея для тех, кто неAC_*и не-AM_*макрос, используемый в , поэтому, если этоconfigure.acне делает этого дляPKG_CHECK_MODULES, он также может не сделать этого для других макросов, поэтому вы можете столкнуться с той же ошибкой позже с каким-либо другим макросом. Исправление то же: добавьтеm4_pattern_forbidстроку, чтобы предотвратить создание поврежденных файлов, а затем восстановитьconfigureс соответствующими*.m4файлы установлены.

Другие вопросы по тегам