LINUX.ORG.RU

GNU Pascal не компилирует при использовании uses


0

1

GNU Pascal не компилирует при использовании uses
Начнём с того, что у меня Ubuntu 10.04.
Решил понастальгировать по молодости и написать несколько программ на Паскале.
Скачал GNU Pascal (да, я знаю, что есть Free Pascal, с ним я уже настальгировал).
Простая программа
program test;
uses crt;
begin
writeln('test привет');
end.

При компиляции выдаёт вот что:
gpc test.pas -v
Using built-in specs.
Configured with: ../src/configure -v --enable-languages=c,pascal --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.1.3 --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --disable-libmudflap --with-tune=generic --enable-checking=release i486-linux-gnu
Thread model: posix
gpc version 20070904, based on gcc-4.1.3 20080704 (prerelease) (Ubuntu 2.1-4.1.2-27ubuntu2)
/usr/lib/gcc/i486-linux-gnu/4.1.3/gpc1 -quiet -v test.pas -quiet -dumpbase test.pas -mtune=generic -famtmpfile=/tmp/ccUgAdGr.gpa -version -o /tmp/ccOyLd3I.s
GNU Pascal version 20070904, based on gcc-4.1.3 20080704 (prerelease) (Ubuntu 2.1-4.1.2-27ubuntu2) (i486-linux-gnu)
   compiled by GNU C version 4.1.3 20080704 (prerelease) (Ubuntu 2.1-4.1.2-27ubuntu2).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Pascal Compiler PreProcessor version 20070904, based on gcc-4.1.3 20080704 (prerelease) (Ubuntu 2.1-4.1.2-27ubuntu2)

test.pas:2: error: module/unit interface `crt' could not be imported

Хотя
/usr/lib/gcc/i486-linux-gnu/4.1.3/units$ file crt.pas
crt.pas: ASCII English text


При этом, если убрать uses crt, то всё компилит и программа выполняется на ура.

Команды uname -a выдала
Linux <вырезано> 2.6.38-020638-generic #201103151303 SMP Tue Mar 15 14:33:40 UTC 2011 i686 GNU/Linux

Ставил гну паскаль так sudo apt-get install gpc


Вот данные о версии гну паскаля
GNU Pascal version 20070904, based on gcc-4.1.3 20080704 (prerelease) (Ubuntu 2.1-4.1.2-27ubuntu2).


gpc -v
Using built-in specs.
Configured with: ../src/configure -v --enable-languages=c,pascal --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.1.3 --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --disable-libmudflap --with-tune=generic --enable-checking=release i486-linux-gnu
Thread model: posix
gpc version 20070904, based on gcc-4.1.3 20080704 (prerelease) (Ubuntu 2.1-4.1.2-27ubuntu2)

google подсказывает:

1. module/unit interface could not be imported

[G4:~] adriaan% gpc crtdemo.pas
crtdemo.pas:35: module/unit interface `Crt' could not be imported

The solution is to specify --automake

[G4:~] adriaan% gpc --automake crtdemo.pas

AITap ★★★★★ ()
Ответ на: комментарий от AITap

Да, я не теряю времени даром и это уже пробовал. Не помогло.
Команда gpc --automake test.pas
Всё скомпилировалось, никаких ошибок не вылезло, появился a.out
Запускаю его и пустота, ничего не выводит, а должна быть надпись test привет.

zahar-nikolay ()
Ответ на: комментарий от zahar-nikolay

И самое интересное
Команда gpc --automake test.pas -v
Вывод тут http://pastebin.com/NcBtwMPk

Самое важное
GNU assembler version 2.20.1 (i486-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.20.1-system.20100303
/usr/lib/gcc/i486-linux-gnu/4.1.3/collect2 --eh-frame-hdr -m elf_i386 --hash-style=both -dynamic-linker /lib/ld-linux.so.2 /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/crt1.o /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.1.3/crtbegin.o -L/usr/lib/gcc/i486-linux-gnu/4.1.3 -L/usr/lib/gcc/i486-linux-gnu/4.1.3 -L/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.1.3/../../.. -L/lib/../lib -L/usr/lib/../lib crtc.o crt.o gpc.o /tmp/ccWBg1qp.o -lpanel -lncurses -lgpc -lm -lgcc -lc -lgcc /usr/lib/gcc/i486-linux-gnu/4.1.3/crtend.o /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/crtn.o

То есть объектные файлы либы crt он линкует!

zahar-nikolay ()
Ответ на: комментарий от madcore

Прочёл, поставил ncurses и ничерта,
правда я ставил ncurses с --without-cxx --without-cxx-binding потому что иначе вылезала ошибка.
И теперь компилится test.pas, но всё равнонету надписи test привет



когда ставил nsurses то и конфиругэ и мэйк и мэйк инсталл от судо

zahar-nikolay ()
Ответ на: комментарий от zahar-nikolay

Разбираться с тем, как сделан импорт модулей для данного компилятора.

То, что он линкует с библиотеками crt абсолютно ничего не значит. Как и наличие файла crt.pas в произвольном месте.

Смотрите, в каком формате хранятся модули и есть ли где-то конфигурация путей к ним. Может быть пути не прописаны либо несовпадение имён (например, регистра названия модулей). Наверняка в штатной документации всё должно быть.

Примеры у него есть? Может быть makefile-ы посмотреть к этим примерам и как сделано подключение модулей в них?

visitor ()
Ответ на: комментарий от zahar-nikolay

> Почему он мёртв?

Последний релиз был пять лет назад. Он уже разложился, я бы сказал.

anonymous ()
Ответ на: комментарий от anonymous

Он даже пять лет назад уже вонял. Просто никому не нужная вещь

unC0Rr ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.