Free Pascal不完全攻略之一 :進入FP的世界

WHY FREE PASCAL
在這個IT技術日新月異的時代,人們的目光總會被各種新穎的技術所吸引,例如。NET   ,Ajax,SOA等等。有時難免會忽略了一些最基本的東西。Pascal作爲一種老牌的編程語言,已經走過了三十多年,似乎已經走到了盡頭——但是,Pascal作爲一種結構嚴謹的編程語言,有其獨特的優勢:緊湊整齊,概念簡介,數據結構和控制結構比較豐富,程序可讀性好。因此,Pascal在算法和數據結構的教學上,有其獨特的優勢。我自己接觸的第一門編程語言就是Pascal。它既比Basic嚴謹,也比C易學。而且它的語法比較靠近C語言,因此Pascal程序員寫C程序也不會有太大問題。(相比之下,BASIC和C就差得遠了)

ABOUT FREE PASCAL

   目前最爲流行的Pascal編譯器,要數Free Pascal。這是一個自由軟件項目,目的是爲了向人們提供一個與Turbo Pascal7.0和Delphi 7儘可能兼容的32位Pascal編譯器。因此,FreePascal支持許多新穎的特性,如面向對象,函數重載、操作符重載、全局成員和RTTI等等。而且FreePascal也是我國目前信息學奧賽指定的Pascal編譯器。因此,我們可以看到,Pascal語言並未走向衰亡,而是藉助FreePascal再一次得到重生與發展。

    但是,Free Pascal已經不同於往日的TurboPascal。它能夠運行在多個不同的平臺下,包括DOS,Linux,Windows,NetBSD,FreeBSD和Mac OSX等等。另外,FreePascal在某些平臺下的移植仍在開發階段,如Solaris,PalmOS和OpenBSD,相信有需要的用戶很快就能夠在這些平臺下用上FreePascal。

    Free Pascal其實是一套完整的套件,它由以下幾個部分組成:
1.Free Pascal的編譯器:fpc。
2.運行庫RTL,Free Pascal的基本程序庫。
3.程序庫包,其中包括了許多非常有用的單元,例如Windows 32 API,壓縮/解壓庫和GTK2圖形界面等。
4.Free Class Library。它提供了許多功能,如數據庫框架,Web支持,XML支持等等
5.若干個小工具和其他的單元

    此外,Free Pascal還有一個基於命令行界面的IDE(集成開發環境),和以前的Turbo Pascal有點相似。這對於初學者來說比較有用。

上圖:FP自帶的IDE
Free Pascal自帶的單元

記得以前Turbo Pascal自帶了七個單元。比起古老的TP,FP的功能強大了許多,所附帶的單元也多了許多。下面選擇一些比較重要的單元來進行介紹:
標準單元:
cmem 使用這個單元,表示你要使用C庫的內存管理機制取代Free Pascal的內存管理機制。
crt 這個單元與TP的crt單元十分類似。它提供了許多終端下的功能函數,如改變顏色、移動光標、從鍵盤中讀取信息等等。
dos 這個單元提供了許多與操作系統相關的函數。例如搜索文件、設置環境變量、獲取操作系統版本、讀寫系統時間等等。這個單元所實現的函數有的和sysutils中的函數有些相似。
heaptrc 顧名思義,這個單元用於堆棧使用狀況的跟蹤。使用這個單元,能在程序結束時輸出使用內存以及可能存在的未釋放內存的信息。
keyboard 該單元提供了獨立於平臺的鍵盤支持。也可以用來寫自己定製的鍵盤驅動程序。
math 該單元實現了許多有用的數學函數,例如三角函數、對數函數等等,甚至是更加複雜的。
matrix 該單元實現了對矩陣操作的支持。
mouse該單元提供了獨立於平臺的鼠標支持。也可以用來寫自己定製的鼠標驅動程序。
mmx 該單元可以爲你的程序提供MMX擴展
sockets 該單元提供了TCP/IP編程的接口
strings 該單元提供了許多操作pchar(字符串指針)類型的函數,與標準C庫有點相似。
system 這個單元包含了許多基本的函數,例如文件IO,內存管理等等。
strutils 該單元包含了許多有用的字符串函數
dateutils 該單元提供了許多處理時間日期的函數
sysutils 該單元有選擇性地實現了Delphi的同名單元的某些函數。例如會檢測文件是否鎖定的IO函數,日期、字符串處理函數,文件搜索,日期字符串轉換等等。
typinfo 該單元實現了類似Delphi的運行期間信息(Run-time Type)的功能。
video 該單元提供了獨立於平臺的屏幕操縱函數,也可以用於編寫驅動程序。

Windows下的附加單元:
wincrt 這個CRT單元用於Windows下的終端。
Windows 該單元提供了WIN32 API的調用。在與Delphi的兼容性上Free Pascal的開發小組已經盡了很大的努力,以使Delphi的代碼能夠輕易地移植到Free Pascal下。
opengl 該單元提供了底層的OPENGL函數。
winmouse該單元提供了在WINDOWS下操縱鼠標的支持。
ole2 提供了處理OLE對象的支持
winsock 提供了對Windows Socket API的支持

Linux以及各種BSD系統下的附加單元:
baseunix 該單元提供了基本的unix系統操作,實現了POSIX標準的一個子集。使用這個單元能夠確保你的程序在不同的Unix系統之間有良好的可移植性。
errors 返回包含操作系統錯誤代碼的字符串。
unixtype 提供了常見的各種Unix下的數據類型

Free Pascal的硬件要求

Free Pascal的硬件要求並不高,對於現代的計算機而言,運行Free Pascal綽綽有餘。你甚至是可以在一些很古老的計算機上面運行Free Pascal。下面給出Free Pascal的硬件要求:
1.Intel的80386或更高級的處理器。儘管不一定需要協處理器,但離開了它就要使用浮點運算仿真,這會使你的程序的速度變慢。(不過現在的處理器基本都帶有協處理器)
2.一個 An AMD64或EMT64 處理器。
3. 一個PowerPC 處理器。
4. 一個 SPARC 處理器。
5. 一個Intel ARM 處理器。
6.舊版本的Free Pascal支持motorola的68000處理器,不過這些舊版本已經不再更新。
在內存方面,FreePascal的要求也不算很高,只需要8MB內存就可以編譯一些小程序。不過,假如你希望編譯器在編譯大型程序(例如編譯一個編譯器)時運行得快一點,那麼建議你的電腦有64MB的內存,甚至是128MB內存,以提高工作效率。在硬盤需求方面,我們建議你給FreePascal至少80MB的空間。裝的東西越多,就耗費的硬盤空間。如果你打算安裝源代碼,那麼你就需要給Free Pascal另外270MB空間。

Free Pascal的軟件平臺要求
一.在DOS下:
Free Pascal for DOS的軟件包已經包含了所有需要的文件,所以你只需要安裝即可。
二.在UNIX下
在UNIX和LINUX系統下,你需要事先安裝一下程序。大多數LINUX發行版和UNIX已經自帶這些程序
1. GNU as,  GNU 彙編器
2. GNU ld, GNU 連接器
3. 建議你把 GNU make也安裝上。如果你想重新編譯器和運行庫(Run-Time Library),這就是必要的。
三.在WINDOWS下
Free Pascal for WINDOWS的軟件包已經包含了所有需要的文件。不過,假如你想更好地使用Free Pascal,那麼建議你把mingw32或cygwin也安裝上。
四.在Mac OS X下
你需要安裝Mac OS X 10.1 或更高的版本。另外還要裝上開發者工具包或 XCode。

安裝編譯器

安裝Free Pascal並不困難。不過不同的平臺有不同的安裝方法,下面我們會逐一討論。
一.在DOS和WINDOWS下安裝
主要的安裝步驟
我們假設你已經下載了最新Free Pascal for WINDOWS 或DOS的軟件包,這通常是一個zip文件。然後將它解包。若在DOS下,請運行裏面的INSTALL.EXE文件。在WINDOWS下則運行setup.exe。
安裝程序會詢問你若干個問題:
1.你需要安裝哪些組件以及你是否需要安裝源代碼。
2.你希望把Free Pascal安裝到哪裏。默認的路徑是C:/PP。
假如你希望從任何路徑都能運行Free Pascal,那麼你必須將FP的二進制程序的位置輸入到AUTOEXEC.BAT下面,
DOS下是這樣的:
SET PATH=%PATH%;C:/PP/BIN/GO32V2
WINDOWS下是這樣的:
SET PATH=%PATH%;C:/PP/BIN/WIN32

二.在Linux下安裝
在Linux下安裝包有以下三種格式:
• tar.gz 格式的壓縮包
• rpm
• deb
如果你下載了RPM包,那麼安裝會是十分簡單的:
rpm -i fpc-X.Y.Z-N.ARCH.rpm
X.Y.Z 代表了版本號,ARCH代表了軟件包的平臺,如i386、i586或x86_64之類的。
如果你使用的是Debian,那麼請使用DEB包,安裝的命令如下:
dpkg -i fpc-XXX.deb
安裝RPM包和DEB包都需要有root權限。若你沒有root權限,那麼你可以嘗試安裝tar格式的安裝包。首先,你需要解壓tar包:
tar -xvf fpc.tar
要安裝Free Pascal,那麼請輸入下面的命令:
./install.sh
安裝腳本會詢問你一些問題,你需要仔細回答,主要的問題是:
1.你想將不同的東西放到哪裏(如二進制可執行文件,幫助文件,單元等等)。
2.你需要安裝哪些組件,是否安裝源代碼。
假如你有root權限,那麼你就可以按照默認給出的設置安裝,但是如果你沒有這個權限,那麼你需要注意一下你對FreePascal的文件的安裝路徑是否有寫權限。在安裝結束的時候,安裝程序會生成一個fpc.cfg文件。這個文件保存了編譯器的各種設置選項。一般這個文件會安裝到/etc和下你的家目錄下,名字爲.fpc.cfg。如果安裝用戶沒有root權限,那麼這個文件就只會安裝到你的家目錄下。編譯程序時,編譯器首先會檢測家目錄下的.fpc.cfg,然後纔是/etc/fpc.cfg。

測試一下編譯器
安裝後,也許你會迫不及待地想編譯一個程序來看看編譯器是否被正確安裝了。在Windows和DOS下,編譯器的執行文件時fpc.exe,在Linux、Unix下則是fpc。下面給出一個最基本的Pascal的Hello World程序:

program Hello;
begin
    writeln(‘Hello World
!
);
    readln;
end.

假設你將這個文件保存爲hello.pp。那麼編譯它只需要使用一下命令:
fpc  hello.pp
如果你沒有爲Free Pascal安裝配置文件,那麼編譯器有可能找不到RTL的路徑,那麼就需要在編譯時給編譯器傳遞另外一些參數(假設Free Pascal被安裝到了默認的路徑):
在Windows下:
fpc -Fuc:/pp/units/go32v2/rtl  hello.pp
在Unix或Linux下:
fpc -Fu/usr/lib/fpc/NNN/units/linux/rtl  hello.pp
如果一切順利,那麼編譯器就不會給出任何錯誤消息。在DOS和Windows下就會生成可執行文件hello.exe,在Linux和Unix下則是hello。要運行程序,只需要在命令行下輸入:
./hello
如果一切正常,那麼你就會看到一句友好的問候:
Hello World!
歡迎你進入Free Pascal的世界!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章