Open by22shh opened 3 years ago
Какая версия Ubuntu и gcc? Откуда вы склонировали проект?
Какая версия Ubuntu и gcc? Откуда вы склонировали проект?
gcc - 9.3.2 Ubuntu - 20.04.1 Указанную версию в README установить не получается, к сожалению.
В каждом случае была одна и та же ошибка, только в первом по процентам чуть дальше продвинулась
Ветка https://github.com/victorbocharov/tomita-parser/tree/no_stlport - правильная.
Я пока не довёл до конца актуализацию кода для свежих версий gcc. Вот тут работающие и не работающие варианты:
https://travis-ci.org/github/victorbocharov/tomita-parser/builds/717297227
На 20.04 томита собирается версиями gcc до 7 включительно. gcc 8 собирает только с ключём cmake -DUSE_INTERNAL_STL=yes
.
Инструкция по сборке здесь: https://github.com/victorbocharov/tomita-parser/blob/no_stlport/docker/Dockerfile-for-travis Там, в частности, показано как поставить нужную версию gcc, а не ту, которая стоит в дистрибутиве по умолчанию.
Т.е. есть возможность поднять томиту в докере?
Т.е. есть возможность поднять томиту в докере?
Наверняка есть ( см. https://github.com/nlpub/tomita-docker ), но я не пробовал. Докер на travis использован только для того, чтобы проверить с разными версиями Ubuntu. Встроенными средствами travis это (разные версии Ubuntu) сделать не получилось.
получил такую же ошибку при сборке томиты в докере на образе ubuntu:20.04
Скорее всего проблема в том, что томита не собирается компилятором по умолчанию в новых версиях Ubuntu. Вот здесь текущее состояние собираемости томтиы под linux в докере:
https://travis-ci.org/github/victorbocharov/tomita-parser/builds/717297227
Смотрите на строчки с USE_INTERNAL_STL=yes.
Обновление кода (удаление и замена разного legacy) пока не завершено, к сожалению.
gcc 7.5, ubuntu 19.04 Переустановил gcc, g++ до версии 7.5 (была 10) и проблема всё еще осталась. Пишет ошибку в библиотке gnulib в файле freadahead.c
error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
.
При обращении к гитхабу gnulib с такой ошибкой мало кто сталкивался. CMake прошел без ошибок, а вот make не заводится
@Antipire
Компьютер - это amd64 (т.е. не Mac и не ARM)?
Вы взяли исходники из https://github.com/victorbocharov/tomita-parser (ветка no_stlport)?
g++ --version
говорит, что он 7.5 ?
@victorbocharov Да, AMD64, нет, вот ветку как раз не пробовал no_stlport, да, версия g++ и gcc говорят версия 7.5.0. Других версий не установлено. У товарища на ubuntu 18.04 получилось собрать проект. Скорее всего проблема в версии ubuntu.
@Antipire , возьмите ветку no_stlport из victorbocharov/tomita-parser. Она отличается от основной тем, что решает проблемы со сборкой. Частично. Судя по логам на travis (тем, что упомянуты выше) в 18.04 и 20.04 с g++ 7.5.0 собралось.
@Antipire напишите, пожалуйста, что в итоге получится.
Скорее всего в силу незнания и неопытности, добиться успеха не получилось. Нам в рамках лабораторной работы необходимо собрать данный парсер, а методичка очень старая и предлагает вообще всё делать через Vagrant. И я еще соврал, когда говорил, что версия ubuntu 20.04, хотя на самом деле 21.04. Пробовал так-же ветку с no_stlport, а ошибки были абсолютно такие-же. Я не пробовал еще использовать Docker для собрки, но этот вариант стоит рассмотреть. В ближайшие дни однозначно нужно попробовать, как получится сообщу, а так ближайшее решение - просто установить ubuntu 18.04. Будем учиться, спасибо Вам за помощь!
@Antipire для того, чтобы попробовать с другой ОС, не надо её устанавливать. Возьмите вот этот докерфайл и соберите его в докере вот этой командой:
sed "s/DISTRIB_PLACEH
OLDER/ubuntu:21.04/" Dockerfile-for-travis | docker build --build-arg COMPILER_VERSION=7 --build-arg USE_INTERNAL_STL=yes --file - .
Так подберёте версию компилятора и дистрибутива, которые у вас работают, без переустановки. Далее вам останется повторить то, что сделано в докерфайле без докера.
я по итогу собрал вне докера, у себя на ос и просто прокинул папку внутрь контейнера
У меня такая же ошибка на совершенно собственном проекта @ https://github.com/alexeysklemin/cmkeStuding/tree/main/comp/computers
/home/baymxs/Рабочий стол/tomita/tomita-parser/src/contrib/tools/bison/gnulib/src/freadahead.c: In function ‘freadahead’: /home/baymxs/Рабочий стол/tomita/tomita-parser/src/contrib/tools/bison/gnulib/src/freadahead.c:91:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib." 91 | #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib." | ^~~~~ make[2]: [contrib/tools/bison/gnulib/CMakeFiles/tools-bison-gnulib.dir/build.make:663: contrib/tools/bison/gnulib/CMakeFiles/tools-bison-gnulib.dir/src/freadahead.c.o] Ошибка 1 make[1]: [CMakeFiles/Makefile2:1874: contrib/tools/bison/gnulib/CMakeFiles/tools-bison-gnulib.dir/all] Ошибка 2 make: *** [Makefile:95: all] Ошибка 2