Добавление нового компилятора!

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
galeke
Posts:14
Joined:23 February 2015, 15:00
Добавление нового компилятора!

Post by galeke » 23 February 2015, 15:31

После установки у меня ejudge не находит компилятор gfortran-4.8.
Версия EJudge 3.2.2.
ОС: Ubuntu 14.04,
Установил через apt-get install gfortran
Все нижеследующие компиляторы отображаются и полноценно работают:
Free Pascal 2.6.2-8 (Free Pascal 2.6.2-8)
GNU C 4.8.2 (GNU C 4.8.2)
GNU C++ 4.8.2 (GNU C++ 4.8.2)
Python 2.7.6 (Python 2.7.6)
Perl 5.18.2 (Perl 5.18.2)
GNU Prolog 1.3.0 (GNU Prolog 1.3.0)
Java JDK 1.7.0_75 (Java JDK 1.7.0_75)
Mono C# 3.2.8.0 (Mono C# 3.2.8.0)
Mono Visual Basic .NET 0.0.0.5943 (Mono Visual Basic .NET 0.0.0.5943)
Ruby 1.9.3p484 (Ruby 1.9.3p484)
PHP 5.5.9-1ubuntu4.5 (PHP 5.5.9-1ubuntu4.6)
Python3 3.4.0 (Python3 3.4.0)
Make 3.81 (Make 3.81)
Make (valgrind) 3.81 (Make (valgrind) 3.81)
GNU C (32 bit) 4.8.2 (GNU C (32 bit) 4.8.2)
GNU C++ 4.8.2 (GNU C++ (32 bit) 4.8.2)
Free Pascal (32 bit) 2.6.2-8 (Free Pascal (32 bit) 2.6.2-8)

Помогите установить компилятор gfortran (любую версию)
Спасибо!

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 23 February 2015, 15:33

Система 32-битная

aropan
Posts:64
Joined:13 April 2012, 18:22

Re: Добавление нового компилятора!

Post by aropan » 23 February 2015, 18:12

А сюда смотрел.

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 23 February 2015, 19:17

Да я смотрел этот мануал.
В форуме нашел мануал (автор kai977) по которому добавляли компилятор bash (вот ссылка: viewtopic.php?f=5&t=1852 )
По этому мануалу смог добавить bash как новый компилятор!
Но вот gfortran не смог добавить!
Хотя, в отличие от bash-а gfortran существует в файле ~/inst-ejudge/libexec/ejudge/lang/lang_ids.cfg и имеет id=6 (gfortran=6)
id bash-а я по мануалу сам добавлял!
Но при вызове ./ejudge-configure-compilers он не определяется (изночально тоже не определялся!)
Надеюсь поможете!

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Добавление нового компилятора!

Post by cher » 23 February 2015, 22:54

Нужна статически скомпилированная библиотека поддержки для языка фортран. На федоре соответствующий пакет называется libgfortran-static.

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 24 February 2015, 06:30

Не смог найти аналог libgfortran-static для убунту 14.04!

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Добавление нового компилятора!

Post by cher » 24 February 2015, 07:46

Тогда отредактируйте скрипт компиляции gfortran.in в каталоге scripts в исходниках ejudge

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 24 February 2015, 08:39

Я отредактировал как показана выше в мануалах с bash. Безрезультатно!

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 24 February 2015, 08:40

Можете дать мануал

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Добавление нового компилятора!

Post by cher » 24 February 2015, 09:02

удалите опцию -static в командной строке gfortran в скриптах gfortran.in и gfortran-version.in, затем не забудьте make install

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 24 February 2015, 12:37

Опции -static в скриптах gfortran.in и gfortran-version.in не нашел или я что-то не так понял. Заранее приношу свои извинения!

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Добавление нового компилятора!

Post by cher » 24 February 2015, 19:09

Вот в скрипте gfortran.in в последней строке:

Code: Select all

# начало скрипта пропущено

unset LANG
unset LC_ALL
unset LC_MESSAGES
unset LANGUAGE

exec "${GFORTRANRUN}" ${EJUDGE_FLAGS} -static "$1" -o "$2"

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 25 February 2015, 05:59

А, у меня gfortran.in выглядит следующим образом:

#!/bin/sh
# $Id: gfortran.in 5608 2010-01-07 19:51:45Z cher $
# Copyright (c) 2008-2010 Alexander Chernov <cher@ejudge.ru>

# using EJUDGE_FLAGS we may pass additional flags

LANG_CONFIG_DIR="@lang_config_dir@"
[ "${EJUDGE_LANG_CONFIG}" = "" ] && EJUDGE_LANG_CONFIG="${LANG_CONFIG_DIR}/gfortran.cfg"

if [ -f "${EJUDGE_LANG_CONFIG}" ]
then
. "${EJUDGE_LANG_CONFIG}"
else
version="unknown"
GFORTRANPATH="/usr/bin/gfortran"
fi

if [ x"${version}" = x ]
then
echo "This language is not supported." >&2
exit 1
fi

echo "#! ${GFORTRANPATH} ${EJUDGE_FLUGS}" >&2
echo >> $2
cat $1 >> $2
chmod +x $2
exit 0

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Добавление нового компилятора!

Post by cher » 25 February 2015, 09:15

Это ваше творчество. Возьмите скрипты, которые идут вместе с ejudge.

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 25 February 2015, 09:58

восстановил старые скрипты
убрал у обеих .in файлов -static
проделал всю процедуру:
./configure....
make && make install
./ejudge-configure-compilers не определил язык процессора gfortran

Post Reply