Рейтинг:0

«/usr/include/stdio.h:27:10: фатальная ошибка: bits/libc-header-start.h: нет такого файла или каталога» при компиляции HTK

флаг cn

Я пытаюсь скомпилировать библиотека ХТК, но столкнулись с проблемами:

$ сделать все
(cd HTKLib && make HTKLib.a) \
  || case "" в *k*) fail=yes;; *) выход 1;; эсак;
make[1]: Вход в каталог '/home/<path_removed_for_privacy>/htk/HTKLib'
gcc -m32 -ansi -D_SVID_SOURCE -DOSS_AUDIO -D'ARCH="x86_64"' -Wall -Wno-switch -g -O2 -I. -DPHNALG -UPHNALG -c -o HGraf.null.o HGraf.null.c
В файле, включенном из HShell.h:40,
                 из HGraf.null.c:25:
/usr/include/stdio.h:27:10: фатальная ошибка: биты/libc-header-start.h: нет такого файла или каталога
   27 | #include <bits/libc-header-start.h>
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~
компиляция прекращена.

Бег dpkg -S libc-header-start.h говорит мне:

libc6-dev:amd64: /usr/include/x86_64-linux-gnu/bits/libc-header-start.h

Хорошо. /usr/include/биты должна быть символическая ссылка на /usr/include/x86_64-linux-gnu/биты, но работает dpkg -S /usr/include/биты дает мне:

dpkg-query: не найден путь, соответствующий шаблону /usr/include/bits

Я исследовал эту ошибку и, насколько я понимаю, должен установить gcc-мультибиблиотека чтобы решить это. Но и с этим у меня проблемы:

Следующие пакеты имеют неудовлетворенные зависимости:
 gcc-multilib : Зависит: gcc-9-multilib (>= 9.3.0-3~), но не будет установлен

Попытка установить gcc-9-мультибиблиотека дает все больше и больше проблем с зависимостью. Исследуя это, я нашел это thread, где решили проблему с gcc-multilib, но, к сожалению, у меня это не работает. Я получаю те же проблемы с зависимостями, что и в исходном сообщении. Их решение состояло в том, чтобы понизить libc6-dev Бег "sudo apt установить libc6-dev=2.31-0ubuntu9.2". Когда я это делаю, он говорит:

Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
libc6-dev уже самая новая версия (2.31-0ubuntu9.2).
libc6-dev настроен на установку вручную.
0 обновлено, 0 установлено заново, 0 удалено и 0 не обновлено.

Так что у меня уже есть версия, которая решила их проблему, но моя проблема осталась.

Любые предложения о том, как решить эту проблему, и, прежде всего, запустить библиотеку HTK, будут очень признательны.

РЕДАКТИРОВАТЬ:
Как просили в комментариях: подходящая политика gcc gcc-multilib gcc-9-multilib:

gcc:
  Установлено: 4:9.3.0-1ubuntu2
  Кандидат: 4:9.3.0-1ubuntu2
  Таблица версий:
 *** 4:9.3.0-1убунту2 500
        500 http://archive.ubuntu.com/ubuntu focus/main amd64 Пакеты
        100 /var/lib/dpkg/status
gcc-мультибиблиотека:
  Установлено: (нет)
  Кандидат: 4:9.3.0-1ubuntu2
  Таблица версий:
     4:9.3.0-1убунту2 500
        500 http://archive.ubuntu.com/ubuntu focus/main amd64 Пакеты
gcc-9-мультибиблиотека:
  Установлено: (нет)
  Кандидат: 9.3.0-17ubuntu1~20.04
  Таблица версий:
     9.3.0-17ubuntu1~20.04 500
        500 http://archive.ubuntu.com/ubuntu focus-security/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu focus-security/main amd64 Packages
     9.3.0-10убунту2 500
        500 http://archive.ubuntu.com/ubuntu focus/main amd64 Пакеты
флаг hr
Пожалуйста, включите вывод `apt policy gcc gcc-multilib gcc-9-multilib`
Rerun avatar
флаг cn
Спасибо, я обновил исходный пост.
флаг hr
Спасибо - я не понимаю, почему gcc-multilib не устанавливается. Однако мне любопытно, почему он вообще пытается создать 32-битную версию?
Knud Larsen avatar
флаг by
HTK только 32-битный? `./configure` создаст Makefile с `CFLAGS = $(CPPFLAGS) -m32 ...` ...... Пример htk: `htk-tools_3.4.1-ubuntu14_i386.deb` (28 февраля 2018 г.) https: //drive.google.com/file/d/1Di29AvqoRBEJ4haW2nusPT1wMPkE14B1/view?usp=sharing ... Устанавливает OK в чистую Ubuntu 20.04 со всеми зависимостями i386 (`sudo gdebi htk-tools_3.4.1-ubuntu14_i386.deb`) .
Knud Larsen avatar
флаг by
Похоже, кто-то нашел решение для 64-битной версии https://www.linuxquestions.org/questions/tags/htk/ — https://www.linuxquestions.org/questions/linux-software-2/configure-error- c-compiler-cannot-create-executables-4175557896/page2.html , сообщение № 23 ...... Просто удалите флаги `-m32` в соответствующих файлах `Makefile.in` (Makefiles) или в `configure` .. .. и `export CC=gcc-4.8 && ./configure && make all`
Rerun avatar
флаг cn
Большое спасибо, Кнуд! Второе предложение намного лучше, чем понижение до 32 бит. Удаление флагов -m32 (хотя и с использованием gcc по умолчанию (9.3.1)) устранило ошибки установки. Однако в целом библиотека кажется довольно глючной, с кучей предупреждений; Мне нужно выяснить, вызывают ли они проблемы.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.