在MacOS Sierra上免费链接Pascal 3.0.2

您还记得您初中在Pascal上的经历吗? 您能想象您将再次需要它吗? 但是一旦落后二十年,我就需要编辑一些新的 Pascal代码并在macOS Sierra上运行它。 我们走吧。

  1. 写您喜欢的程序:
 程序你好; 
 开始 
writeln('Hello world!');
结束。

2.安装新版本的Free Pascal Compiler。 标准安装程序在macOS Sierra上不起作用(当然,已经安装了XCode命令行工具):

所以我们通过Homebrew来做到这一点:

  $ brew install fpc 

幸运的是它有效。

3.尝试编译:

  $ fpc hello.pas 
适用于x86_64的免费Pascal编译器版本3.0.2 [2017/03/21]
Florian Klaempfl和其他人(1993-2017)版权所有(c)
目标操作系统:Darwin for x86_64
编译hello.pas
组装(管道)hello.s
链接你好
ld:找不到文件:/usr/lib/crt1.10.5.o
连结时发生错误
hello.pas(4,25)错误:链接时出错
hello.pas(4,25)致命:编译模块时发生1个错误,正在停止
致命:编译中止
错误:/ usr / local / bin / ppcx64返回错误退出码

不完全符合您的预期,对吗? 经过一番谷歌搜索后,我意识到大多数库都是从macOS Sierra的/ usr / lib中删除的。 但是这种情况是在FPC中处理的,因此我们只需要将内部编译器变量MacOSXVersionMin设置为10.8(或更高版本)。 没有标准的编译器选项,但是在源代码中进行了一些搜索之后,我找到了解决方案:设置环境变量MACOSX_DEPLOYMENT_TARGET:

  $ MACOSX_DEPLOYMENT_TARGET = 10.12 fpc hello.pas 
适用于x86_64的免费Pascal编译器版本3.0.2 [2017/03/21]
Florian Klaempfl和其他人(1993-2017)版权所有(c)
目标操作系统:Darwin for x86_64
编译hello.pas
组装(管道)hello.s
链接你好
整理5条线,0.1秒

最后它起作用了:

  $ ./您好 
你好,世界!