2015-12-02 3 views
0

Язык программирования SR больше не поддерживается, поэтому я понимаю, что мои шансы найти помощь по этой проблеме могут быть небольшими. Тем не менее, мне нужен язык, установленный для учебных целей и не могу придумать, как действовать.Sr Язык программирования Install On Ubuntu 14.04 Ошибки компилятора

Вот, казалось бы, единственным источником информации в Интернете о языке http://www.cs.arizona.edu/sr/

Пакет установки обеспечивает Makefile для установки. Однако, выполнив следующие действия:

mkdir /usr/local/src/sr 
cd /usr/local/src/sr 
wget ftp://ftp.cs.arizona.edu/sr/sr.tar.Z 
tar xzf sr.tar.Z 
make 

результаты этих ошибок

echo "#"    >paths.sh 
echo "# Created mechanically; DO NOT EDIT THIS FILE." >>paths.sh 
echo "#"    >>paths.sh 
sed -n >>paths.sh <Configuration \ 
    -e 's/#.*//' -e 's/[ ]*$//' -e 's/ *= */=/' \ 
    -e 's/="*\(.* [^"]*\)"*$/="\1"/' -e '/^[A-Z0-9_]* *=/p' 
echo ""    >>paths.sh 
echo >paths.tmp '/*' 
echo >>paths.tmp ' * Created mechanically; DO NOT EDIT THIS FILE.' 
echo >>paths.tmp ' */' 
sed >>paths.tmp <paths.sh \ 
     -n -e 's/"//g' -e 's/.*/#define &"/' -e 's/= */ "/p' 
if cmp -s paths.tmp paths.h; then :; else cp paths.tmp paths.h; fi 
cc -g  -c -o util.o util.c 
util.c: In function ‘salloc’: 
util.c:79:27: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default] 
    return strcpy (alloc (strlen (s) + 1), s); 
         ^
util.c: In function ‘strtail’: 
util.c:94:14: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default] 
    int ls = strlen (s); 
      ^
util.c: In function ‘setpath’: 
util.c:221:25: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default] 
    searchpath = alloc (strlen (evpath) + strlen (ifdir) + 100); 
         ^
cmp -s multi/uni.h srmulti.h || cp multi/uni.h srmulti.h 
cmp -s multi/uni.c srmulti.c || cp multi/uni.c srmulti.c 
cd sr; make CC="cc" CFLAGS="-g " 
make[1]: Entering directory `/usr/local/src/sr/sr' 
cc -g  -c -o main.o main.c 
In file included from main.c:7:0: 
../arch.h:147:11: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘--’ token 
    ERROR -- no architecture selected 
     ^
main.c:114:1: warning: conflicting types for ‘options’ [enabled by default] 
options (argc, argv) 
^ 
main.c:114:1: error: static declaration of ‘options’ follows non-static declaration 
main.c:53:5: note: previous implicit declaration of ‘options’ was here 
    options (argc, argv); /* process options */ 
    ^
make[1]: *** [main.o] Error 1 
make[1]: Leaving directory `/usr/local/src/sr/sr' 
make: *** [all] Error 2 

Я полагал, что это может быть проблема с версией компилятора, который я использовал. gcc -v возвращает gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04), и файлы установки, похоже, сделаны для компиляции в более ранних версиях. Я попытался установить более раннюю версию gcc таким образом, что gcc -v дает gcc version 3.4.6 (Debian 3.4.6-5), но столкнулся с похожими, но разными ошибками компилятора. Возможно, я сделал что-то не так с пониженной установкой, потому что кажется странным, что он говорит Debian 3.4.6-5.

В комплект поставки также входит файл install.sh. Попытка

chmod +x /usr/local/src/sr/install.sh 
/usr/local/src/sr/install.sh 

возвращает следующее:

+ cp sr/sr /usr/local/bin 
cp: cannot stat ‘sr/sr’: No such file or directory 
+ strip /usr/local/bin/sr 
strip: Warning: '/usr/local/bin/sr' is not an ordinary file 
+ cp srl/srl /usr/local/bin 
cp: cannot stat ‘srl/srl’: No such file or directory 
+ strip /usr/local/bin/srl 
strip: Warning: '/usr/local/bin/srl' is not an ordinary file 
+ cp srm/srm /usr/local/bin 
cp: cannot stat ‘srm/srm’: No such file or directory 
+ strip /usr/local/bin/srm 
strip: Warning: '/usr/local/bin/srm' is not an ordinary file 
+ cp srprof/srprof /usr/local/bin 
cp: cannot stat ‘srprof/srprof’: No such file or directory 
+ strip /usr/local/bin/srprof 
strip: Warning: '/usr/local/bin/srprof' is not an ordinary file 
+ cp srtex/srtex /usr/local/bin 
cp: cannot stat ‘srtex/srtex’: No such file or directory 
+ strip /usr/local/bin/srtex 
strip: Warning: '/usr/local/bin/srtex' is not an ordinary file 
+ cp srlatex/srlatex /usr/local/bin 
cp: cannot stat ‘srlatex/srlatex’: No such file or directory 
+ strip /usr/local/bin/srlatex 
strip: Warning: '/usr/local/bin/srlatex' is not an ordinary file 
+ cp srgrind/srgrind /usr/local/bin 
cp: cannot stat ‘srgrind/srgrind’: No such file or directory 
+ cp preproc/*2sr /usr/local/bin 
cp: cannot stat ‘preproc/*2sr’: No such file or directory 
+ cp sr.h /usr/local/lib/sr 
+ cp srmulti.h /usr/local/lib/sr 
+ cp rts/srlib.a /usr/local/lib/sr 
cp: cannot stat ‘rts/srlib.a’: No such file or directory 
+ [ -f /bin/ranlib -o -f /usr/bin/ranlib ] 
+ ranlib /usr/local/lib/sr/srlib.a 
ranlib: '/usr/local/lib/sr/srlib.a': No such file 
+ cp library/*.o /usr/local/lib/sr 
cp: cannot stat ‘library/*.o’: No such file or directory 
+ cp library/*.spec /usr/local/lib/sr 
cp: cannot stat ‘library/*.spec’: No such file or directory 
+ cp library/*.impl /usr/local/lib/sr 
cp: cannot stat ‘library/*.impl’: No such file or directory 
+ cp srmap /usr/local/lib/sr 
+ cp rts/srx /usr/local/lib/sr 
cp: cannot stat ‘rts/srx’: No such file or directory 
+ strip /usr/local/lib/sr/srx 
strip: '/usr/local/lib/sr/srx': No such file 
+ cp srlatex/srlatex.sty /usr/local/lib/sr 
+ cp preproc/ccr2sr.h preproc/csp2sr.h preproc/m2sr.h /usr/local/lib/sr 
+ cp sr-mode.el /usr/local/lib/sr 
+ [ ! -z /usr/man/manl -a -d /usr/man/manl -a ! -z l ] 
+ echo not installing man pages for commands 
not installing man pages for commands 
+ [ ! -z /usr/man/manl -a -d /usr/man/manl -a ! -z l ] 
+ echo not installing sranimator/srgetopt/srwin man pages 
not installing sranimator/srgetopt/srwin man pages 
+ [ ! -z /usr/man/manl -a -d /usr/man/manl -a ! -z l ] 
+ echo not installing srmap/srtrace man pages 
not installing srmap/srtrace man pages 
+ exit 0 

и ничего не происходит.

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

Спасибо

Обновление: Мой Коллега условии, что эти изменения в ./Configuration файла:

sed -i -e "s:/usr/local:/usr:" -e "s:/usr/X11/lib:/usr/lib:" \ 
    -e "s:CCPATH = /bin/cc:CCPATH = /usr/bin/gcc" \ 
    -e "s:RSHPATH = /usr/ucb/rsh:RSHPATH = /usr/bin/ssh:" \ 
    -e "s:VFPATH = /usr/lib/vfontedpr:VFPATH = :" Configuration 

Бег make на GCC 4.8.4 после этого дает

cmp -s multi/uni.h srmulti.h || cp multi/uni.h srmulti.h 
cmp -s multi/uni.c srmulti.c || cp multi/uni.c srmulti.c 
cd sr;  make CC="cc" CFLAGS="-g " 
make[1]: Entering directory `/usr/local/src/sr/sr' 
cc -g  -c -o main.o main.c 
In file included from main.c:7:0: 
../arch.h:147:11: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘--’ token 
    ERROR -- no architecture selected 
     ^
main.c:114:1: warning: conflicting types for ‘options’ [enabled by default] 
options (argc, argv) 
^ 
main.c:114:1: error: static declaration of ‘options’ follows non-static declaration 
main.c:53:5: note: previous implicit declaration of ‘options’ was here 
    options (argc, argv); /* process options */ 
    ^
make[1]: *** [main.o] Error 1 
make[1]: Leaving directory `/usr/local/src/sr/sr' 
make: *** [all] Error 2 

Это избавляется от исходных проблем с запуском, но проблемы с компилятором все еще там.

С GCC 3.4 это дает

cmp -s multi/uni.h srmulti.h || cp multi/uni.h srmulti.h 
cmp -s multi/uni.c srmulti.c || cp multi/uni.c srmulti.c 
cd sr;  make CC="cc" CFLAGS="-g " 
make[1]: Entering directory `/usr/local/src/sr/sr' 
cc -g  -c -o main.o main.c 
In file included from main.c:7: 
../arch.h:147: error: syntax error before '--' token 
main.c:115: error: conflicting types for 'options' 
main.c:53: error: previous implicit declaration of 'options' was here 
make[1]: *** [main.o] Error 1 
make[1]: Leaving directory `/usr/local/src/sr/sr' 
make: *** [all] Error 2 
+1

Грубый догадка: './configure' сначала? – Olaf

+0

@ Олаф Да, спасибо, я забыл упомянуть. Существует файл ./Configuration, который мой коллега предоставил для замены. Я отредактирую первое сообщение, чтобы включить это. – Beyayfivay

+0

Вы знакомы с C и Linux? Если нет, попробуйте получить помощь от кого-то, кто знаком с обоими. Думаю, это было бы очень просто для него. Вероятно, он сможет установить SR, используя * недавний * компилятор GCC (обычный в вашем дистрибутиве) –

ответ

1

"SR": Старые файлы → → год 2001!

"SR" компилирует ОК с GCC версии 3.2.3 или GCC версии 3.4.6 ( Редактировать файл 'Configuration' ( Нет gcc32 для Ubuntu 14.04).).

# make install: Предоставляет/USR/местный/bin/sr

PS: Gcc34 доступен для Ubuntu 14.04: Compat-gcc34-3.4.6-ubuntu1204-1_ amd64 .deb или Compat-gcc34_3.4.6-ubuntu15_ i386 .deb


Смежные вопросы