维基副本镜像

这是 pascal.chat 维基的镜像。编辑、历史记录和登录都在那里。

Installing the Free Pascal Compiler/zh CN

English · 中文(中国)

这里有一个如何安装和构建FreePascal编译器的广泛讨论,网址:http://www.stack.nl/~marcov/buildfaq.pdf - 对于一些用户来说,它可能有点太过于详细了,但是它是非常全面的。

概述

这里有很多方法来在你的系统上安装FPC。当前发布版本,trunk版本,有时beta版本和RC版本也可以从FPC网站https://sourceforge.net/projects/freepascal/files/ (tar, exe, rpm, dmg 文件)直接获得。另外,从Lazarus的下载网站中也提供了FPC的版本(包括rpm和deb文件),Lazarus网址http://sourceforge.net/projects/lazarus/files/。 Linux用户差不多都能从Linux发行版的存储库中找到FPC,但是可能会发现FPC是过时的版本。

从源文件构建FPC也是可能的,通常每个发布版本都可以使用先前的发布版本构建。在系统安装应用程序空间中(通常需root几或administrator访问权限)或在你自己的用户控件中安装FPC都是能做到的。这些取决于您的特定的操作系统环境。

Linux

FPC二进制文件软件包

尽管最新的FPC3.2.0已经发布,但是只有少数发行版的存储库中存在新的FPC编译器。你可以做一个FPC -

bash
yum localinstall fpc-3.2.0-1.x86_64.rpm
// ??????
rpm -Uvh fpc-3.2.0-1.x86_64.rpm
bash
apt install ./fpc-laz_3.2.0-1_amd64.deb

FPC的Tar包

另一个选项是从一个tar包安装,一种简单并且可能更有用的模型。这些tar包可广泛地用于类Unix系统中。你需要为你的操作系统和CPU来下载恰当的二进制文件tar包,并且你也可能需要所有操作系统/CPU都通用的源文件 文件。你可以在你自己的空间中安装FPC,而不是作为root用户。

这里有一系列的命令,而不是一个脚本,这些命令将在一个64位Linux系统上安装FPC。这些命令可以编写成脚本,但是需要健全性和错误检查。注意,我喜欢在我的$HOME/bin中安装像这样的大小,如果你喜欢在$HOME中安装东西,甚至会更简单一些,我确信你可以看到其中的不同点。

Note: 一 次tar包安装不会解决依赖关系,如果这些依赖还不存在,首先安装binutils, make, gcc。

bash
cd
mkdir -p bin/FPC/Tars
mkdir bin/FPC/SRC
cd bin/FPC/Tars
# 下载源文件和编译器tar包,为不同的CPU(或Mac?)做更改 
wget https://sourceforge.net/projects/freepascal/files/Source/3.2.0/fpc-3.2.0.source.tar.gz
wget https://sourceforge.net/projects/freepascal/files/Linux/3.2.0/fpc-3.2.0-x86_64-linux.tar
tar xf fpc-3.2.0-x86_64-linux.tar
cd fpc-3.2.0-x86_64-linux
./install.sh
# 当询问在何处安装时,输入$HOME/bin/FPC/fpc-3.2.0 ,并在此之后接受所有的默认值。

cd ../../SRC
tar xzf ../Tars/fpc-3.2.0.source.tar.gz

# 在.bashrc的结尾处,添加并设置一个编译器在哪里的路径,如果你不使用bash,相应地调整! 
echo "PATH=\"\$HOME/bin/FPC/fpc-3.2.0/bin\":\"\$PATH\"" >> ~/.bashrc
source ~/.bashrc

# 不重要的测试
cd 
fpc -iV

Note: 上面第二个的wget假设你正在使用的是一个amd64 (AMD或Intel)类型的机器,其它的平台需要一个不同的tar包。例如,针对一个Raspberry Pi,你可以使用:-

pascal
wget https://sourceforge.net/projects/freepascal/files/Linux/3.2.0/fpc-3.2.0.arm-linux.tar

这个tar包拥有armhf的32位编译器。顺便说一句,Raspberry Pi可能需要你增加swap空间到至少1G。如果你计划稍后使用FPC构建一些大型应用程序的话。

FPC源文件

FPC源文件文件存储在一个Subversion (SVN)存储库中,该存储库保持跟踪源文件树的所有更改。在你拥有源文件后,关于如何安装它们是说明,请查看在 BSD/Linux下从源文件安装。

使用SVN从源文件存储库更新

SVN存储库已经为每个人提供了只读可访问权限。这意味你可以直接访问代码,并且你将获得最新的源文件。这是一个方法,它需要较少的宽带,在你完成第一次下载后(在SVN中签出)。

获取源文件

首先,你需要一个已经安装的SVN客户端。使用你的软件包管理器,安装一个工具,像在Windows上的TortoiseSVN ,更多信息查看网页。

使用命令行SVN:更改目录(cd)到你开发区域的父目录,例如,为了首次在你的home目录下的一个fpc子目录下,索回完整的源文件存储库,输入:

bash
cd ~
svn checkout http://svn.freepascal.org/svn/fpc/trunk fpc

为更新上面已下载(已签出的)的源文件:

bash
cd ~
svn update fpc

获取一个单独的分支

如果当前的trunk版本处于一个快速变化的状态,不适合多用。除非你想在编译器本身上工作,你可以停留在一个带有fixes分支的更新版本上。为此,你必需找到一个你想要跟踪的稳定分支,而不是默认的trunk开发版本。

下面的示例向你展示如何跟踪fixes_3_2版本;当然,可根据你想跟踪的的分支来进行替换。 Th这个示例将在你的home目录下的另外一个目录下保留fixes分支 - 在一个目录中放置源文件的两个版本是没有意义的...

bash
cd ~
svn checkout http://svn.freepascal.org/svn/fpc/branches/fixes_3_2 fpc_fixes_3_2

照例更新:

bash
cd ~
svn update fpc_fixes_3_2

文档源文件

文档源文件位于一个名称为fpcdocs的单独的存储库中,因此获取它们的命令是:

bash
cd ~
svn checkout http://svn.freepascal.org/svn/fpcdocs/trunk fpcdocs

如果你想要学习更多关于subversion的知识,阅读这本极好的Subversion书籍,它也可以在网上以不同的格式免费获取。

更多信息,查看Free Pascal网站。

FreeBSD

Note: 如果你也希望安装Lazarus,你可以忽略下面安装FPC的步骤,因为Lazarus的port集合将为你 安装FPC

从port集合安装

FreeBSD的port集合在/usr/ports/lang/fpc中有FPC v3.0.4版本。FPC 分散在38 (!)软件包中。FPC源文件现在已经默认安装了;它以前需要从/usr/ports/distfiles/freepascal中复制和解压缩。

这必需以root的身份来完成。

bash
# cd /usr/ports/lang/fpc && make install && make clean

在安装FPC后,你只需要以一个普通用户的身份来检查它是否工作,运行:

bash
$ fpc test

这应该会产生一个类似于这样的输出:

text
 Free Pascal Compiler version 3.0.4 [2020/06/14] for x86_64
 Copyright (c) 1993-2017 by Florian Klaempfl and others
 Target OS: FreeBSD for x86-64
 Compiling test
 Fatal: Cannot open file "test"
 Fatal: Compilation aborted
 Error: /usr/local/bin/ppcx64 returned an error exitcode

从tar包安装

根据你的系统选择恰当的32位/64位的tar包文件。对于x86_64的64位的FreeBSD,从x86_64下 载。对于i386的32位的FreeBSD,从i386下载。

为安装Free Pascal,从一个终端中运行:

bash
$ fetch ftp://ftp.freepascal.org/pub/fpc/dist/3.2.0/x86_64-freebsd/fpc-3.2.0.x86_64-freebsd11.tar
$ tar -xf fpc-$FPC_VERSION.$PLATFORM-freebsd11.tar
$ cd fpc-3.2.0.x86_64-freebsd
$ sh install.sh

根据需要替换Free Pascal版本(3.0.4, 3.2.0或3.3.1) 和架构(X86_64或i386)。

如果你想全局安装Free Pascal Compiler,例如在/usr/local中,作为 root用户身份运行install.sh脚本。

如果你在FreeBSD 12或更新的版本,默认的链接器是lld。这可能会导致问 题,例如,如果你的代码使用 cthreads单元,像下面的程序一样:

pascal
uses cthreads;
begin
    writeln('hello'); 
end.

为这个程序生成的可执行文件在运行时将导致一个分段错误。为修复这个问题,你需要安装GNU的链接器:

bash
root# pkg install binutils

并确保/usr/local/bin/存在于你的PATH环境变量中,并在/tt>/usr/bin/之前

在BSD/Linux上从源文件安装

实际上,你需要:

1. 一个包含所有FPC源文件的文件(https://sourceforge.net/projects/freepascal/files/Source/3.2.0/fpc-3.2.0.source.tar.gz))

2. 一个启动(自举)FPC编译器。一个FPC发布版本总是可以由先前发布的FPC版本所构建,FPC trunk版本也总是可以由当前的FPC发布版本所构建。你可以现在一个自举Free Pascal编译器或者使用你发行版的软件包管理器/软件系统来安装一个编译器。

FPC构建过程:

bash
# Linux使用
export MAKE=`which make` ; echo $MAKE 
# FreeBSD使用(默认csh,或tcsh):
set MAKE=`which gmake` ; echo $MAKE
# FreeBSD使用(bash):
export MAKE=`which gmake` ; echo $MAKE
$MAKE all OPT='-gl' FPC=/path/to/startingcompiler-name-ppcx64
# $MAKE在Linux上是make,在BSD上是gmak
# /path/to/可以被忽略,当ppc386 (32位)或ppcx64 (64位)在path中时
bash
$MAKE install FPC=compiler/ppcx64 PREFIX=$THEPREFIX
#如果不在Intel x86上,使用相关的编译器替换FPC=compiler/ppcx64 (或者针对32位的ppc386)
#THEPREFIX= 通常是/usr/local或只是/usr,但是在NetBSD上,它是/usr/pkg)
bash
ln -s $THEPREFIX/lib/fpc/3.2.0/ppcx64 $THEPREFIX/bin/ppcx64
bash
$MAKE install sourceinstall PREFIX=$THEPREFIX
bash
ln -sf $THEPREFIX/share/src/3.2.0/fpc /usr/share/fpcsrc
bash
$THEPREFIX/lib/fpc/3.2.0/samplecfg $THEPREFIX/lib/fpc/3.2.0 $ETCDIR

Notes:

bash
find . >ll

Windows

安装FPC二进制文件

到目前为止,获取一个可以工作的Free Pascal安装的最简单的方法是,从SourceForge存储库下载当前的二进制发布版本 - 发布版本包含当前的Free Pascal编译器和Free Pascal 库。

在Windows上从源文件安装

从源文件安装 -- 查看接下来的章节来了解如何获取源文件 -- 这不是针对新手的,因为你也需要一个最开始的编译器。

FPC源文件

<<<< 查看上述针对Linux的[#FPC_sources|FPC源文件]]的章节,在其中描述了SVN的使用 >>>>

通过SVN获取Free Pascal源文件是最简单的方法;更多信息查看下一章节。你也可以下载一个整个软件包 -- 发布树的每日快照版本查看 https://www.freepascal.org/develop.html 。

通过SVN获取FPC源文件

为了执行上述步骤,你将需要安装一个SVN客户端,例如TortoiseSVN。在不同SVN客户端之间的命令名 称各不相同;下面给出的是针对命令行的Subversion客户端,可以从https://sourceforge.net/projects/win32svn/下载。

首先在你想放置源文件的目录中创建一个目录。任何普通用户都可以这样做。为FPC创建一个目录(例如,C:\Source)然后,在命令提示符中执行下面的命令:

bash
C:\Source> svn checkout https://svn.freepascal.org/svn/fpc/trunk fpc

提示:为下载/更新最新的更改,你可以简单地执行:

dos
C:\> cd Source\FPC
C:\Source\FPC> svn update

查看: https://www.freepascal.org/down/i386/win32.html。下载发行软件包(fpc-3.2.0.i386-win32.exe)并运行它 - 它是一个自解压安装器,因此只需要遵循安装说明来安装它。安装器应该会按情况设置PATH环境变量。

接下来重新启动windows。

在你安装FPC二进制文件后,你可以从中构建FPC源文件。

提示:

操作指南:

使用SVN (Win32)从源文件编译/安装FPC

FPC 3.2.0版本 或 trunk版本

步骤#1: 创建目录和获取源文件

创建下面的目录:

text
 c:\freepascal\
 c:\freepascal\binutils\
 c:\freepascal\binutils\i386-win32\
 c:\freepascal\fpc\
 c:\freepascal\fpc\3.2.0\

或对于fpc trunk版本来说:

text
 c:\freepascal\
 c:\freepascal\binutils\
 c:\freepascal\binutils\i386-win32\
 c:\freepascal\fpc\
 c:\freepascal\fpc\trunk\

你将需要最新的发布版本编译器来构建一个新的编译器。使用FTP(下面的地址)来获取ppc386(编译器),并解压缩它到c:\freepascal\binutils\

text
 ftp://ftp.freepascal.org/pub/fpc/dist/3.2.0/bootstrap/i386-win32-ppc386.zip

在安装TortoiseSVN后,使用针对每个目录的URL来从SVN中下载源文件,查看:

text
 Dir: c:\freepascal\binutils\i386-win32\
 URL: https://svn.freepascal.org/svn/fpcbuild/branches/fixes_3_0/install/binw32

或对于fpc trunk版本来说:

text
 Dir: c:\freepascal\binutils\i386-win32\
 URL: https://svn.freepascal.org/svn/fpcbuild/trunk/install/binw32
text
 Dir: c:\freepascal\fpc\3.0.4
 URL: https://svn.freepascal.org/svn/fpc/branches/fixes_3_0/

或对于fpc trunk版本来说:

text
 Dir: c:\freepascal\fpc\trunk
 URL: https://svn.freepascal.org/svn/fpc/trunk/

步骤 #2: 创建一个BAT文件来编译FPC

在下载完所有的东西后,我们需要一个BAT文件来编译FPC源文件。 创建一个新的文件c:\freepascal\makefpc.bat,并复制/粘贴下面的脚本:

dos
@echo on
set myroot=c:\freepascal
set myFPC=%myroot%\fpc\3.2.0 
set mybinutils=%myroot%\binutils
set PATH=%PATH%;%mybinutils%\i386-win32;%myFPC%\bin\i386-win32
cd %myFPC%
rd /s /q  %myfpc%\examples
svn cleanup . --remove-unversioned  --remove-ignored
make distclean all install INSTALL_PREFIX=%myFPC% PP=%mybinutils%\ppc386.exe DATA2INC=%myFPC%\utils\data2inc.exe
cd /d %myFPC%\bin\i386-win32
fpcmkcfg -d basepath=%myFPC% -o .\fpc.cfg 
copy fpc.exe %mybinutils%\i386-win32

或对于fpc trunk版本来说:

dos
@echo on
set myroot=c:\freepascal
set myFPC=%myroot%\fpc\trunk 
set mybinutils=%myroot%\binutils
set PATH=%PATH%;%mybinutils%\i386-win32;%myFPC%\bin\i386-win32
cd %myFPC%
rd /s /q  %myfpc%\examples
svn cleanup . --remove-unversioned  --remove-ignored
make distclean all install INSTALL_PREFIX=%myFPC% PP=%mybinutils%\ppc386.exe DATA2INC=%myFPC%\utils\data2inc.exe
cd /d %myFPC%\bin\i386-win32
del fpc.cfg
fpcmkcfg -d basepath=%myFPC% -o .\fpc.cfg 
copy fpc.exe %mybinutils%\i386-win32

对于针对x86_64的交叉编译器,在第一个make后添加下面的内容:

dos
make all OS_TARGET=win64 CPU_TARGET=x86_64 INSTALL_PREFIX=%myFPC% PP=%mybinutils%\ppc386.exe DATA2INC=%myFPC%\utils\data2inc.exe
make crossinstall OS_TARGET=win64 CPU_TARGET=x86_64 INSTALL_PREFIX=%myFPC% PP=%mybinutils%\ppc386.exe DATA2INC=%myFPC%\utils\data2inc.exe

步骤 #3: Make和安装FPC

在命令提示符中(cmd.exe),导航到目录c:\freepascal and execute the script we just wrote:

dos
cd /d c:\freepascal
makefpc.bat

完成!

macOS

Warning: 如果你也打算安装Lazarus,请忽略这些操作指南,而参考在macOS上安装Lazarus

。

步骤1:下载Xcode

你需要Apple开发人员工具,它们是Xcode开发环境的一部分。

Xcode 11.3.1 for use on macOS 10.14 Mojave must now be installed by downloading it from Apple Developer Connection (ADC), which requires free registration. Xcode 11.4.x for use on macOS 10.15 Catalina can be installed from the Mac App store. Note that you must first move any old Xcode versions from the Applications folder into the trash or rename the Xcode app (eg Xcode.app to Xcode_1014.app). You can select which version of Xcode to use with the command line utility xcode-select.

较旧的系统:

The developer tools can be installed from the original macOS installation disks or a newer copy downloaded from the Apple Developer Connection (ADC), which requires free registration. Download the Xcode file, it will end up in your Downloads directory as a zip file. Click it. It is unarchived into your Downloads directory. You may be happy with it there but maybe not. Other users will see the path to it but be unable to use it. And it is untidy there. So I moved mine and then told xcode-select where it was moved to (in a terminal) -

bash
mv Downloads/Xcode.app /Developer/.
sudo xcode-select -s /Developer/Xcode.app/Contents/Developer

步骤2: Xcode命令行工具

This is shown here as a separate step because it really is a separate step in addition to Step 1. Don't confuse this with the internal Xcode command line tools that the Xcode GUI will tell you are already installed. FPC cannot use those Xcode internal command line tools, so do the following (it is quick and easy)-

bash
sudo xcode-select --install
sudo xcodebuild -license accept

步骤3:下载FPC

从Free Pascal网站现在Free Pascal Compiler (FPC)和FPC源文件。当你到达下载页面时,请选择一个镜像网站,然后为你的操作系统选择正确的版本

这些二进制安装工具包由FPC开发人员构建和跟踪正式发布。因为这些安装包没有代码签名,也没有经过苹果的认证,因此,你需要在安装软件包上单击并选择"打开",或者在安装软件包上右击并在弹出的菜单中选择"打开",接下来确认你要从未知开发人员安装。

其它的macOS安装选项

fpcupdeluxe

你也可以考虑使用fpcupdeluxe来安装FPC。

fink和MacPorts

或者,你可以使用macOS的一个软件包(像fink或MacPorts来安装FPC。她们附加的好处是容易安装和移除FPC,以及大量的其它的开放源文件的软件软件包。Fink也为很多CPU和操作系统提供很多Free Pascal交叉编译器。

测试FPC安装

在这个阶段,你可能想尝试一个简单而快速的FPC测试。从命令行中(Mac - 打开一个应用程序 > 实用程序 > 终端),复制这个非常短的程序,并保存它为文件helloworld.pas:

pascal
program helloworld;
begin
    writeln('hello world !');
end.

现在使用这个命令行编译这个简单的代码:

bash
fpc helloworld.pas <enter>

它应该会快速生成一个可执行文件,你可能会猜到它的名称为"helloworld"。使用这个命令来运行这个可执行文件:

bash
./helloworld <enter>

如果这样工作,很好地完成了!

安装交叉编译器

一个交叉编译器允许你为一个平台创建一个不同于正在使用的编译平台的二进制文件(可执行文件)。例如,在macOS下工作,并为Win32,FreeBSD或Linux创建可执行文件。 关于如何安装交叉编译器的详细情况,查看交叉编译。

请参阅


From the Free Pascal wiki, page "Installing the Free Pascal Compiler/zh CN", as it stood on 2021-06-01 after a change by Robsean, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

版本3,最后由WikiArchive于修改。