Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не получается собрать при выполнении пункта с make на Ubuntu #139

Open
by22shh opened this issue Dec 19, 2020 · 18 comments

Comments

@by22shh
Copy link

by22shh commented Dec 19, 2020

/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

@victorbocharov
Copy link
Contributor

Какая версия Ubuntu и gcc?
Откуда вы склонировали проект?

@by22shh
Copy link
Author

by22shh commented Dec 19, 2020

Какая версия Ubuntu и gcc?
Откуда вы склонировали проект?

gcc - 9.3.2
Ubuntu - 20.04.1
Указанную версию в README установить не получается, к сожалению.

@by22shh
Copy link
Author

by22shh commented Dec 19, 2020

@by22shh
Copy link
Author

by22shh commented Dec 19, 2020

В каждом случае была одна и та же ошибка, только в первом по процентам чуть дальше продвинулась

@victorbocharov
Copy link
Contributor

Ветка 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, а не ту, которая стоит в дистрибутиве по умолчанию.

@by22shh
Copy link
Author

by22shh commented Dec 19, 2020

Т.е. есть возможность поднять томиту в докере?

@victorbocharov
Copy link
Contributor

Т.е. есть возможность поднять томиту в докере?

Наверняка есть ( см. https://github.com/nlpub/tomita-docker ), но я не пробовал.
Докер на travis использован только для того, чтобы проверить с разными версиями Ubuntu. Встроенными средствами travis это (разные версии Ubuntu) сделать не получилось.

@SidorkinAlex
Copy link

получил такую же ошибку при сборке томиты в докере на образе ubuntu:20.04

@victorbocharov
Copy link
Contributor

Скорее всего проблема в том, что томита не собирается компилятором по умолчанию в новых версиях Ubuntu. Вот здесь текущее состояние собираемости томтиы под linux в докере:

https://travis-ci.org/github/victorbocharov/tomita-parser/builds/717297227

Смотрите на строчки с USE_INTERNAL_STL=yes.

Обновление кода (удаление и замена разного legacy) пока не завершено, к сожалению.

@Antipire
Copy link

Antipire commented Oct 12, 2021

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 не заводится

@victorbocharov
Copy link
Contributor

victorbocharov commented Oct 12, 2021

@Antipire
Компьютер - это amd64 (т.е. не Mac и не ARM)?
Вы взяли исходники из https://github.com/victorbocharov/tomita-parser (ветка no_stlport)?
g++ --version говорит, что он 7.5 ?

@Antipire
Copy link

@victorbocharov Да, AMD64, нет, вот ветку как раз не пробовал no_stlport, да, версия g++ и gcc говорят версия 7.5.0. Других версий не установлено. У товарища на ubuntu 18.04 получилось собрать проект. Скорее всего проблема в версии ubuntu.

@victorbocharov
Copy link
Contributor

@Antipire , возьмите ветку no_stlport из victorbocharov/tomita-parser. Она отличается от основной тем, что решает проблемы со сборкой. Частично. Судя по логам на travis (тем, что упомянуты выше) в 18.04 и 20.04 с g++ 7.5.0 собралось.

@victorbocharov
Copy link
Contributor

@Antipire напишите, пожалуйста, что в итоге получится.

@Antipire
Copy link

Antipire commented Oct 13, 2021

Скорее всего в силу незнания и неопытности, добиться успеха не получилось. Нам в рамках лабораторной работы необходимо собрать данный парсер, а методичка очень старая и предлагает вообще всё делать через Vagrant. И я еще соврал, когда говорил, что версия ubuntu 20.04, хотя на самом деле 21.04. Пробовал так-же ветку с no_stlport, а ошибки были абсолютно такие-же. Я не пробовал еще использовать Docker для собрки, но этот вариант стоит рассмотреть. В ближайшие дни однозначно нужно попробовать, как получится сообщу, а так ближайшее решение - просто установить ubuntu 18.04. Будем учиться, спасибо Вам за помощь!

@victorbocharov
Copy link
Contributor

@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 - .

Так подберёте версию компилятора и дистрибутива, которые у вас работают, без переустановки. Далее вам останется повторить то, что сделано в докерфайле без докера.

@SidorkinAlex
Copy link

я по итогу собрал вне докера, у себя на ос и просто прокинул папку внутрь контейнера

@alexeysklemin
Copy link

У меня такая же ошибка на совершенно собственном проекта @
cmake error
https://github.com/alexeysklemin/cmkeStuding/tree/main/comp/computers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants