Pascal 日和 ホームページ

カウンター








ソースネクスト

Free Pascalの設定



Free Pascal 3.0 のインストールと設定




 事前に、「共通設定」ページを参照してください。




 Free Pascal は Pascal コンパイラの一つです。
 Free Pascal のWebサイトはこちらです ⇒ http://www.freepascal.org/

 Free Pascal は、ISO規格に準拠するのではなく、Borland社(現在のEmbarcadero社)の Turbo Pascal と Delphi の互換を目指して作成されています。その他、MacPascal のスタイルも取り入れている。Delphi とのRAD開発についての互換については、Lazarus として実装しています。Lazarus では Delphi の VCL にあたるコンポーネント群を LCL として持っています。Lazarus の IDE は Delphi 6 や Delphi 7 に似ています。ただし、言語仕様も操作も完全互換ではありません。
 Lazarus の 言語は Free Pascal です。

 Lazarus のWebサイトはこちらです ⇒ http://www.lazarus-ide.org/

 Free Pascal は、ISO互換路線ではありませんが、多くのプラットフォームをサポートし、Pascal 言語のデファクトスタンダードと言ってよいと思います。

 ここでは、Windows 32bit/64bit をターゲットとする開発環境をインストールします。




Free Pascal の入手


 以下のURLを開いてダウンロードサイトを開きます。

 ダウンロードサイトのURL ⇒ https://sourceforge.net/projects/freepascal/files/Win32/

 以下のダウンロードサイトが開いたら、最新のバージョンをクリックしてインストーラ一覧を表示します。




 「fpc-3.0.4.i386-win32.exe」と「fpc-3.0.4.i386-win32.cross.x86_64-win64」の2つをダウンロードします。「3.0.4」の部分は選択したバージョンになります。
 インストールした後は削除してよいので、ダウンロードの場所はどこでもかまいません。ファイル名のリンクをクリックするとダウンロードできます。
 ターゲットが64bitだけで良い人も両方ダウンロードしてください。64bit版は32bit版に追加するクロスコンパイラで提供されます。




 その他のファイルもWin32に追加して使用できるクロスコンパイラです。



Free Pascal Win32のインストール


 「fpc-3.0.4.i386-win32.exe」を実行するとWin32版のインストールが始まります。これは必ず実施してください。
 [Next>]ボタンをクリックします。




 Free Pascal のインストールディレクトリを指定します。特に問題なければ「C:\FPC\3.0.4」のままとし、[Next>]ボタンをクリックします。




 Free Pascal のコンポーネントのインストール方法が出るので、「Full instration」を選択し、[Next>]ボタンをクリックします。




 Windowsのスタートメニューの項目名を指定します。特に問題なければ「Free Pascal」のままとし、[Next>]ボタンをクリックします。




 拡張子とIDEの関連づけと、アイコンや設定ファイルの作成について聞いてきます。
 Free Pascalには、英語モードテキストベースのIDEが付いています。これと拡張子を関連づけるかどうか(最初の4つ)の設定は任意でかまいません。
 アイコンと設定ファイルの作成(下の4つ)はチェックしてください。設定したら、[Next>]ボタンをクリックします。

 


 インストールの準備ができたので、 [Install]ボタンをクリックします。




 インストールが開始します。完了するまで待ちます。




 リリースノートが表示されるので、読んだら、[Next>]ボタンをクリックしてください。




 セットアップが完了すると、終了画面が表示されます。[Finish]ボタンを押して閉じます。




 メモ帳で readme.txt が表示されます。問題がなければメモ帳を閉じて完了です。





Free Pascal Win64のインストール



 「fpc-3.0.4.i386-win32.cross.x86_64-win64」を実行するとWin64のクロスコンパイラのインストールが始まります。64bit開発が不要な場合はインストールも不要です。
 [Next>]ボタンをクリックします。




 Free Pascal のインストールディレクトリを指定します。特に問題なければ「C:\FPC\3.0.4」のままとし、[Next>]ボタンをクリックします。




 Free Pascal のコンポーネントのインストール方法が出るので、「Full instration」を選択し、[Next>]ボタンをクリックします。




 インストールの準備ができたので、 [Install]ボタンをクリックします。




 インストールが開始します。完了するまで待ちます。




 セットアップが完了すると、終了画面が表示されます。[Finish]ボタンを押して閉じます。




 メモ帳で readme.txt が表示されます。問題がなければメモ帳を閉じて完了です。




 これで、Free Pascal の設定は完了です。ダウンロードした fpc-3.0.4.i386-win32.exe と fpc-3.0.4.i386-win32.cross.x86_64-win64 は削除してもかまいません。



Free PascalのPATHの設定


 Free Pascal の PATH(環境変数)の設定は、インストーラがシステムのプロパティで設定するので、特に何もすることはありません。
 インストーラで追加された PATH は、「C:\FPC\3.0.4\bin\i386-Win32」です。

 もし、システム設定を避けたければ、PATHの設定から削除し、以下の例のようなPATHを設定するコマンドスクリプトファイルを作成しても良いと思います。
 以下は、Free PascalのPATH設定コマンドスクリプスクリプトの例です。

@ECHO OFF
REM
REM Free Pascal 環境変数設定。
REM
CALL resetpath.cmd
PATH C:\FPC\3.0.4\bin\i386-Win32;%PATH%

 ※ resetpath.cmd は「共通設定」ページで作成したコマンドスクリプトファイルです。

 コマンドプロンプトを起動し、Free Pascalコンパイラ fpc.exe を実行すると、以下のようにヘルプメッセージが表示されます。

Microsoft Windows [Version 10.0.16299.371]
(c) 2017 Microsoft Corporation. All rightsreserved.

C:\PG>fpc
Free Pascal Compiler version 3.0.4 [2017/10/06] for i386
Copyright (c) 1993-2017 by FlorianKlaempfl and others
C:\FPC\3.0.4\bin\i386-Win32\fpc.exe[options] <inputfile> [options]
Only options valid for the default orselected platform are listed.
Put + after a boolean switch option toenable it, - to disable it.
 @<x>   Read compiler options from <x> inaddition to the default fpc.cfg
 -a     The compiler does not delete thegenerated assembler file
     -al        List sourcecode lines inassembler file
     -an        List node info inassembler file (-dEXTDEBUG compiler)
     -ao        Add an extra option toexternal assembler call (ignored forinternal)
     -ar        List register allocation/release info in assembler file
     -at        List temp allocation/release info in assembler file
 -A<x>  Output format:
     -Adefault  Use default assembler
     -Aas       Assemble using GNU AS
     -Amacho    Mach-O (Darwin, Intel 32bit) using internal writer
     -Anasm     Assemble using Nasm
     -Anasmcoff COFF (Go32v2) file usingNasm
     -Anasmelf  ELF32 (Linux) file usingNasm
     -Anasmwin32 Win32 object file usingNasm
     -Anasmwdosx Win32/WDOSX object fileusing Nasm
     -Anasmdarwin macho32 object fileusing Nasm (experimental)
*** press enter ***



 「*** press enter ***」と表示されたら、エンターキーを押すとヘルプメッセージの続きが表示されます。




ISO Pascal の Hello, world.




 本サイトでは、Free Pascal を OBJFPC モードで使用します。Free Pascal には、いくつかのモードがあり、モードごとに機能も変わります。
 OBJFPC モードは、Free Pascal の中で高機能であり、LazarusのIDEが生成するプログラムも OBJFPC モードです。
 また、ソースプログラムの文字コードは UTF-8 とします。LazarusのエディタもUTF-8で作成されます。
 コンパイルモードも文字コードも Free Pascal と Lazarus で合わせていきたいと思います。
 UTF-8のBOMの有無については、どちらでもコンパイルできますが、Lazarusに合わせるとBOM無しとなります。


Free PascalのHollo, world. (その1)


 「はじめに」ページで示したPascal版 Hello, world. のメッセージを「世界よ、こんにちは。」に変えてコンパイルしたいと思います。日本語を含んだプログラムソースのコンパイルができるかどうかは結構重要な問題です。
 Free Pascalでは、文字コードはUTF-8を使用してください。

 C:\PG\FreePascal に Hello というサブディレクトリを作成し、その中に以下のプログラムを Hello.pp というファイルで保存してください。(プログラム部分のCopy&Pastができます)
 ファイルの拡張子は何でも良いのですが、Free Pascal は .pp または .pas としたいと思います。

 また、基本的には1つのプログラムは1つのサブディレクトリを用意して、その中でコンパイルします。ソースファイルは複数のときもあります。

 Free Pascalについての説明は別途行いますので、ここではこの通りに実行して、正しくコンパイルできる環境ができたことを確認してください。

{ Free PascalのHello, world.(日本語版) }

program Hello;

{$MODE OBJFPC}
{$CODEPAGE UTF8}
{$LONGSTRINGS ON}

uses
  SysUtils;

begin
  WriteLn(Output, '世界よ、こんにちは。')
end.

 コンパイラディレクティブの「{$LONGSTRINGS ON}」は「{$H+}」でも良いのですが、できるだけ省略形ではない形で記載します。

 Hello.pp をターゲットをWin32としてコンパイルして実行してみましょう。

C:\PG>CD FreePascal\Hello

C:\PG\FreePascal\Hello>fpc -Twin32 -Pi386 -Ciort -oHello.exe Hello.pp
Free Pascal Compiler version 3.0.4 [2017/10/06] for i386
Copyright (c) 1993-2017 by FlorianKlaempfl and others
Target OS: Win32 for i386
Compiling Hello.pp
Linking Hello.exe
14 lines compiled, 0.7 sec, 64544 bytescode, 4100 bytes data

C:\PG\FreePascal\Hello>Hello
世界よ、こんにちは。

C:\PG\FreePascal\Hello>



 コンパイルは、「fpc Hello.pp」だけでもHello.exeが作成されますが、上記はターゲットプラットフォームの指定や、実行時エラーチェックの指定などを加えています。
 Hello.pp を UTF-8 で記述しても、コンパイルされたプログラムの出力は、Shift-JIS(コードページ932)となるので、正しく表示されます。

 以下の様にコンパイルするとWin64をターゲットとすることができます。コンパイルは32bitWindowsで行えますが、実行は64bitWindowsが必要です。

C:\PG\FreePascal\Hello>fpc -Twin64 -Px86_64 -Ciort -oHello.exe Hello.pp
Free Pascal Compiler version 3.0.4 [2017/10/06] for x86_64
Copyright (c) 1993-2017 by FlorianKlaempfl and others
Target OS: Win64 for x64
Compiling Hello.pp
Linking Hello.exe
14 lines compiled, 0.5 sec, 71344 bytescode, 4900 bytes data

C:\PG\FreePascal\Hello>Hello
世界よ、こんにちは。

C:\PG\FreePascal\Hello>




Free PascalのHollo, world. (その2)


 次にFree PascalのUnitを使用したモジュールプログラミングの Hello, wold. をコンパイルしてみましょう。
 プログラムの内容はモジュールプログラミングに適したものではなく、分割コンパイルのためのサンプルと考えてください。

 C:\PG\FreePascal に Hello2 というサブディレクトリを作成し、その中に以下のプログラムを Hello2.pp というファイルで保存してください。

{=============================================================================}
{= プログラム:Hello2                                                        =}
{=============================================================================}

program Hello2;

{$MODE OBJFPC}
{$CODEPAGE UTF8}
{$LONGSTRINGS ON}

uses
  SysUtils,
  SayHelloUnit;   { SayHelloUnit の利用 }

begin

  SayHelloEng(Output);    { SayHelloUnit の SayHelloEng の呼び出し }
  SayHelloJpn(Output);    { SayHelloUnit の SayHelloJpn の呼び出し }

end.


 同じ場所に以下のプログラムを SayHelloUnit.pp というファイルで保存してください。

{=============================================================================}
{= ユニット:SayHelloUnit                                                    =}
{=============================================================================}

unit SayHelloUnit;

{$MODE OBJFPC}
{$CODEPAGE UTF8}
{$LONGSTRINGS ON}

{=============================================================================}
{= 【インターフェース部】                                                    =}
{=============================================================================}

interface

uses
  SysUtils;

procedure SayHelloEng(var F : Text);

procedure SayHelloGmn(var F : Text);

procedure SayHelloJpn(var F : Text);


{=============================================================================}
{= 【実現部】                                                                =}
{=============================================================================}

implementation

{ 英語 }
procedure SayHelloEng(var F : Text);
begin
  WriteLn(F, 'Hello, World.');
end;

{ ドイツ語 }
procedure SayHelloGmn(var F : Text);
begin
  WriteLn(F, 'Hallo, Welt.');
end;

{ 日本語 }
procedure SayHelloJpn(var F : Text);
begin
  WriteLn(F, '世界よ、こんにちは。');
end;

end.


 同じ場所に以下のメイクスクリプトを makefile というファイルで保存してください。

#
# Hello2 の メイクファイル
#

MAIN  = Hello2
UNIT1 = SayHelloUnit

# Target Win32
FPCFLAGS = -Twin32 -Pi386 -Ciort
# Target Win64
#FPCFLAGS = -Twin64 -Px86_64 -Ciort

$(MAIN).exe : $(MAIN).pp $(UNIT1).ppu
	@rm -f $(MAIN).o
	fpc $(FPCFLAGS) -o$(MAIN).exe $(MAIN).pp

$(UNIT1).ppu : $(UNIT1).pp
	@rm -f $(UNIT1).o $(UNIT1).ppu
	fpc $(FPCFLAGS) $(UNIT1).pp

clean :
	rm -f $(MAIN).exe $(MAIN).o $(UNIT1).o $(UNIT1).ppu



 Hello2 をメイクして実行してみましょう。

C:\PG>CD FreePascal\Hello2

C:\PG\FreePascal\Hello2>make
fpc -Twin32 -Pi386 -Ciort SayHelloUnit.pp
Free Pascal Compiler version 3.0.4 [2017/10/06] for i386
Copyright (c) 1993-2017 by FlorianKlaempfl and others
Target OS: Win32 for i386
Compiling SayHelloUnit.pp
51 lines compiled, 0.1 sec
fpc -Twin32 -Pi386 -Ciort -oHello2.exeHello2.pp
Free Pascal Compiler version 3.0.4 [2017/10/06] for i386
Copyright (c) 1993-2017 by FlorianKlaempfl and others
Target OS: Win32 for i386
Compiling Hello2.pp
Linking Hello2.exe
20 lines compiled, 0.1 sec, 64656 bytescode, 4100 bytes data

C:\PG\FreePascal\Hello2>Hello2
Hello, World.
世界よ、こんにちは。

C:\PG\FreePascal\Hello2>




 生成物(実行モジュール、ユニットファイル、オブジェクトファイル)の削除は、make clean で削除できます。

C:\PG\FreePascal\Hello2>make clean
rm -f Hello2.exe Hello2.o SayHelloUnit.oSayHelloUnit.ppu

C:\PG\FreePascal\Hello2>



 ここまでできれば、Free Pascalの環境は完了です。
 うまくいかなかった場合は、「共通設定」ページと本ページを再度見直してください。