macOS下使用Free Pascal

你是否会想起20年前第一次接触到的Pascal语言?是否期待能再次与Pascal的重逢?到现在为止,我一直认为Pascal是初学编程者最好的入门语言之一,其语言语法严谨,层次分明,程序易写,具有很强的可读性。让我们一起开始在最新的macOS上开始用Pascal编程吧,编辑器当然首选微软的编程神器VS Code加Pascal插件。

首先编写一段如下的代码:Hello.pas

1
2
3
4
program hello;
begin
writeln('Hello world!');
end.

在Free Pascal的官方网站上下载的安装包无法直接在macOS 10.14下安装,因此我们直接选择brew安装

1
brew install fpc

安装完成后,根据文档说明,进行编译

1
2
3
4
5
6
7
8
9
10
11
12
13
$ fpc hello.pas
Free Pascal Compiler version 3.0.2 [2017/03/28] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Darwin for x86_64
Compiling hello.pas
Assembling (pipe) hello.s
Linking hello
ld: file not found: /usr/lib/crt1.10.5.o
An error occurred while linking
hello.pas(4,25) Error: Error while linking
hello.pas(4,25) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/local/bin/ppcx64 returned an error exitcode

源代码编译是成功的,但是ld连接不成功,macOS下一些老的库从/usr/lib/中移除了,因此报错。我们需要设置环境变量MACOSX_DEPLOYMENT_TARGET,指定编译器目标为比较早的macOS版本。

1
2
3
4
5
6
7
8
$ MACOSX_DEPLOYMENT_TARGET=10.12 fpc hello.pas
Free Pascal Compiler version 3.0.2 [2017/03/28] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Darwin for x86_64
Compiling hello.pas
Assembling (pipe) hello.s
Linking hello
5 Tlines compiled, 0.1 sec

编译和连接成功。
最后我们运行程序

1
2
$ ./hello
Hello world!

成功!