Компиляция Free Pascal в Linux

Free Pascal Compiler (FPC) — это свободно распространяемый компилятор языка Pascal с открытым исходным кодом. FPC — кроссплатформенный инструмент, поддерживающий огромное количество платформ.

В одной из предыдущих статей мы рассматривали вопрос установки компилятора FPC в Ubuntu. В данной же статье мы узнаем, как скомпилировать свою первую программу после установки данного компилятора.

 

Материалы, которые могут пригодиться:

 

Создание программы

Программы на языке FPC можно писать с помощью любого текстового редактора и сохранять в текстовом формате с расширением «.pas». Для примера такой программы я буду использовать утилиту для определения количества кругов итераций необходимых для нахождения случайного числа, равного нулю. Это одна из моих старых практических работ студенческих времен, какую-либо фактическую пользу данная программа скорее всего не несет.

Перейдем к созданию программы. Создадим файл las.pas в домашнем каталоге пользователя:

cd ~/
touch las.pas

Откроем данный файл в редакторе nano и запишем в него нижеприведенный код:

nano las.pas

Код:

program test;
uses CRT;
var
    i, rand : longint;
    c, num : longint;
function circl(x:integer):boolean;
    begin
    circl := FALSE;
    if (x <> 0) then
	circl := TRUE;
end;
begin
    clrscr;
    randomize;
    c := 0;
    i := 0;
    writeln('Определение случайного числа, равного нулю');
    writeln('Введите число предела: ');
    read(num);
    rand := random(num);
    clrscr;
    while(circl(rand) = TRUE) do begin
	if(keypressed) then EXIT;
	rand := random(num);
	clrscr;
	c += 1;
	i += 1;
    writeln('Определение случайного числа, равного нулю');
	writeln('Число предела: ', num);
	writeln('Текущее случайное: ', rand);
	writeln('Круг: ', c);
	if((i>0) and (i<10)) then write('\ .');
	if((i>10) and (i<20)) then write('| ..');
	if((i>20) and (i<30)) then write('/ ...');
	if((i>30) and (i<40)) then write('- ....');
	if((i>40) and (i<50)) then write('\ ...');
	if((i>50) and (i<60)) then write('| ..');
	if((i>60) and (i<70)) then write('/ .');
	if(i=70) then i:=0;
	writeln;
	writeln;
	writeln('Идет подбор');
	delay(10);
    end;
	clrscr;
	writeln('Определение случайного числа, равного нулю');
	writeln('Число предела: ', num);
	writeln('Кругов пройдено: ', c);
	writeln('Ноль = ', rand);
end.

 

Компиляция и запуск

Сохраним данный файл (las.pas) и выполним его компиляцию с помощью FPC:

fpc ./las.pas

На выходе получем два файла:

  • las.o
  • las

Файл с расширением «.o» нас не интересует — он является объектным файлом. Компилятор создает объектный файл для каждого исходного файла, прежде чем связать их вместе в окончательный исполняемый файл.

Нас же интересует выходной бинарный исполняемый файл las. Именно его мы и попробуем запустить:

./las

 

Как видно из скриншота выше — программа отработала и случайное число (от 0 до 100 (предела, который мы указали)) равное нулю было получено на 40 раз исполнения команды random();.

 

Если при выполнении команды ./las ты получишь ошибку доступа или сообщение о том, что файл не найден, тогда задай права на исполнение на данный файл. По умолчанию такие права должны быть ему заданны компилятором, но бывает всякое:

chmod +x ./las

 

 

 

Добавить комментарий

Есть, что добавить? Нет проблем! Напечатай комментарий и он будет опубликован после проверки.