Pascal 日和 ホームページ

カウンター








ソースネクスト

GNU Pascal の設定(Dev+GNU Pascal版)



GNU Pascal のインストールと設定(Dev+GNU Pascal版)




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





 GNU Pascal は Pascal コンパイラの一つです。
 GNU Pascal のWebサイトはこちらです ⇒ http://www.gnu-pascal.de/

 GNU Pascal は、GNU Compiler Collection(GCC)の一つで、Cコンパイラ(gcc) をコード生成のバックエンドとした Pascal のフロントエンドとなります。C言語へのコンバータではなく、Pascal言語を直接コンパイルして実行ファイルを作成します。
 GNU Pascal は、GNU General Public License のもとに使用できます。

 Windowsでは、GCCを提供する環境にCygwin(POSIX環境)とMinGW(Windows環境)がありますが、ここではMinGW版を使用します。
 ここでは、Dev-Pascal という Pascal 用の IDE と GNU Pascal コンパイラ、MinGW をセットにした 「Dev+GNU Pascal」を使用します。



GNU Pascalの入手とインストール


 Dev+GNU Pascal  は、インストーラが提供されています。

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

 ダウンロードサイトのURL ⇒ http://www.gnu-pascal.de/binary/mingw32/

 「Dev+GNU Pascal 1.9.4.13 + GPC 20070904 + Mingw runtimes + GCC (3.4.5) support files」をクリックし、dev_gnu_pascal-1.9.4.13.exe をダウンロードします。




 ダウンロードした dev_gnu_pascal-1.9.4.13.exe を実行すると。ファイルが展開され、インストーラが起動します。




 [Next]ボタンをクリックします。




 [I Adree: Proceed!]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 [Next>]ボタンをクリックします。




 インストールするディレクトリを指定します。既定では「c:\dev_gpc」です。
 [Start Install]ボタンをクリックするとインストールが開始します。




 完了するまで待ちます。




 Dev+GNU Pascalのシュートカットをデスクトップに作成する場合は[Yes]ボタン、不要な場合は[No]ボタンをクリックしてください。




 インストールが完了すると、ReadmeのPDFファイルが表示されます。




 これで、GNU Pascal の設定は完了です。ダウンロードした dev_gnu_pascal-1.9.4.13.exe は削除してもかまいません。

 スタートメニューから[全てのプログラム]-[Dev+GNU Pascal 1.9.4.13]-[The Dev+GNU Pascal IDE]を選択すると Dev+GNU Pascal IDEが起動します。
 メニューなどの日本語リソースはありませんが、日本語を含んだプログラムソースを作成することはできます。ただし、Shift-JISに限定されます。




 [Option]-[Compiler options]メニューで、コンパイラオプションの設定ができます。
 プログラムを ISO Extended Pascal としてコンパイルするには、[Misc]タブで[Extended Pascal (ISO-10206)]を選択します。
 [OK]ボタンをクリックすると確定します。




 [Option]-[Environment options]メニューで、環境オプションの設定ができます。
 フォントを変えるには、[Editor]タブの[Font]を設定します。テキストボックス内は文字化けしますが、プロダウンでは漢字も表示されます。
 [OK]ボタンをクリックすると確定します。





GNU PascalのPATHの設定


 Dev+GNU Pascal IDEを使用する場合は、特にPATH(環境変数)の設定は気にしなくても良いですが、コマンドプロンプトでGNU Pascalコンパイラを使用するには、PATHの設定が必要です。
 GNU Pascal の PATHの設定は、システムのプロパティで設定せず、コマンドスクリプトファイルで一時的に設定する方法をとります。
 システムのプロパティで設定すると、Windowsのすべてのアプリが影響を受けるので、できるだけ不必要な設定は避けたいと思います。
 コマンドプロンプトで作業する場合、PATH コマンドで PATH の設定を変更すると、そのコマンドプロンプトにだけ作用し、コマンドプロンプトを終了すると設定変更も無効となります。そのため、必要な PATH コマンドを発行するコマンドスクリプトファイルを作成し、コマンドプロンプトを起動したら作業の前に対象のコマンドスクリプトを実行します。
 make コマンドなど使用したい場合は Dev+GNU Pascalだけでは持っていないので、別途MinGWをインストールする必要があります。MinGWのインストールは「MinGWの設定」ページを参照してください。
 Dev+GNU Pascalには、環境変数を設定する setgpc.bat というコマンドスクリプトファイルがありますが、これをベース MinGW の msys を PATH に加えます。MinGWをインストールしない場合は不要です。

 以下のコマンドスクリプトをメモ帳(Notepad.exe)やエディタで作成し、C:\CMD ディレクトリに 「gnupas2.cmd」というファイルで保存します。

@ECHO OFF
REM
REM GNU Pascal 環境変数設定(Dev+GNU Pascal版)。
REM
CALL resetpath.cmd
SET  LANG=ja_JP.SJIS
SET  C_INCLUDE_PATH=c:\dev_gpc\include
SET  GCC_BASE=3.4.5
SET  GPC_EXEC_PREFIX=c:\dev_gpc\libexec\gcc\mingw32
SET  LIBRARY_PATH=c:\dev_gpc\lib;c:\dev_gpc\lib\gcc\mingw32\%GCC_BASE%
SET  GPC_UNIT_PATH=c:\dev_gpc\lib\gcc\mingw32\%GCC_BASE%\units
SET  GPC_UNIT_PATH=%GPC_UNIT_PATH%;c:\dev_gpc\units
SET  GPC_UNIT_PATH=%GPC_UNIT_PATH%;c:\dev_gpc\units\winapi
SET  GPC_UNIT_PATH=%GPC_UNIT_PATH%;c:\dev_gpc\units\objects
SET  GPC_UNIT_PATH=%GPC_UNIT_PATH%;c:\dev_gpc\units\sysutils
SET  GPC_UNIT_PATH=%GPC_UNIT_PATH%;c:\dev_gpc\units\objmingw
PATH C:\dev_gpc\bin;C:\MinGW32\msys\1.0\bin;%PATH%

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

 作成した gnupas2.cmd コマンドスクリプトを実行し、GNU Pascalコンパイラ gpc.exe を実行すると、以下のようにコンパイラのメッセージが表示されます。

C:\PG\GNUPascal>gnupas2

C:\PG\GNUPascal>gpc
GNU Pascal version 20070904, based on gcc-3.4.5 (mingw special).
Copyright (C) 1987-2006 Free Software Foundation, Inc.

GNU Pascal is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GNU Pascal is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

For more version information on components of the GNU Pascal compiler,
especially useful when reporting bugs, type the command
   `gpc --verbose'.

Most used command line options:
   -c         Compile or assemble the source files, but do not link.
   -o FILE    Place output in file FILE.
   --automake Automatically (re)compile modules/units.
   -v         Be verbose.

The command line options are described in the online documentation.
   `info -f gpc invoking' describes them in detail.

Report bugs to <gpc@gnu.de>.


C:\PG\GNUPascal>



 コマンドプロンプトを起動したら最初に1回 gnupas2.cmd を実行してください。以降の説明では gnupas2.cmd が実行されていることを前提とします。




ISO Pascal の Hello, world.




 本サイトでは、GNU Pascal を ISO Pascal コンパイラとして使用します。GNU Pascal は、ISO Pascal 以外に拡張された機能も持ちますが、ISO Pascal 以外の拡張機能については触れません。実用的な Pascal については Free Pascal(Lazarus) で取り上げたいと思います。
 ここでは、国際標準規格としてのPascalとして進めます。



ISO 標準 PascalのHollo, world.


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

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

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

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

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

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


 Hello.p をコンパイルして実行してみましょう。

C:\PG>CD GNUPascal\Hello

C:\PG\GNUPascal\Hello>gpc --standard-pascal --executable-file-name Hello.p

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

C:\PG\GNUPascal\Hello>




ISO 拡張 PascalのHollo, world.


 Hello.p はISO 拡張 Pascal でもコンパイルできますが、ISO 拡張 Pascal 特有のモジュールプログラミングの Hello, world. をコンパイルしてみましょう。
 プログラムの内容はモジュールプログラミングに適したものではなく、分割コンパイルのためのサンプルと考えてください。

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

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

program Hello2(Output);

{ SayHelloMod から HelloProcs をインポート。ただし SayHelloEng と SayHelloJpn のみ }
import
  HelloProcs only (SayHelloEng, SayHelloJpn);

begin

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

end.


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

{=============================================================================}
{= モジュール:SayHelloMod 【インターフェース部】                            =}
{=============================================================================}

module SayHelloMod interface;

export
  HelloProcs = (SayHelloEng, SayHelloGmn, SayHelloJpn);

procedure SayHelloEng(var F : Text);

procedure SayHelloGmn(var F : Text);

procedure SayHelloJpn(var F : Text);

end.

{=============================================================================}
{= モジュール:SeyHelloMod 【実現部】                                        =}
{=============================================================================}

module SayHelloMod implementation;

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

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

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

end.


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

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

MAIN = Hello2
MOD1 = SayHelloMod
INT1 = HelloProcs

# ISO 10206 Extended Pascal
GPCFLAGS = --extended-pascal --executable-file-name
# ISO 7185 Pascal 
#GPCFLAGS = --standard-pascal --executable-file-name

$(MAIN).exe : $(MAIN).p $(MOD1).o
	gpc $(GPCFLAGS) $(MAIN).p

$(MOD1).o : $(MOD1).p
	@rm -f $(MOD1)-all.gpi $(INT1).gpi
	gpc $(GPCFLAGS) -c $(MOD1).p

clean :
	rm -f $(MAIN).exe $(MOD1).o $(MOD1)-all.gpi $(INT1).gpi



 Hello2 をメイクして実行してみましょう。makeを使用するにはMinGW/msysもインストールして下さい。

C:\PG>CD GNUPascal\Hello2

C:\PG\GNUPascal\Hello2>make
gpc --extended-pascal --executable-file-name -c SayHelloMod.p
gpc --extended-pascal --executable-file-name Hello2.p

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

C:\PG\GNUPascal\Hello2>



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

C:\PG\GNUPascal\Hello2>make clean
rm -f Hello2.exe SayHelloMod.o SayHelloMod-all.gpi HelloProcs.gpi

C:\PG\GNUPascal\Hello2>





Dev+GNU PascalでHollo, world.


 C:\PG\GNUPascal に HelloDev というサブディレクトリを作成しておきます。
 Dev+GNU Pascalを起動し、[File]-[New Project...]で新しいプロジェクト「HelloDev」を作成します。
 「HelloDev」と入力し、[OK]ボタンをクリックします。




 プロジェクトの種類は、[Console Application]を選択し、[OK]ボタンをクリックします。




 プロジェクトファイル HelloDev.db を C:\PG\GNUPascal\HelloDev に保存します。




 プログラムを書いて、保存(Save Current File)ボタンをクリックします。




 ファイルの種類を「All Files (*.*)」にし、ファイル名を「HelloDev.p」 として保存します。




 メイク(Make Project)ボタンをクリックすると、プロジェクトがメイクされます。
 コンパイル結果が表示されます。[Total Errors]が 0 なら成功です。
 [Execute]ボタンをクリックすると、プログラムを実行しますが、コマンドプロンプトが出て瞬時に終了してしまうので、 [Continue]ボタンをクリックします。




 コマンドプロンプトで実行してみます。

C:\PG>CD GNUPascal\HelloDev

C:\PG\GNUPascal\HelloDev>hellodev
世界よ、こんにちは。

C:\PG\GNUPascal\HelloDev>



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