如何使用Free Pascal编译64位Mac程序?

8
我在我的Mac上使用GCC编译了一个x86_64库,我想将它与使用Free Pascal 2.4编译的Pascal代码链接起来。我该给fpc什么选项才能生成64位代码?如果没有任何选项,我只能得到32位.o文件。
我正在使用从SourceForge下载的fpc-2.4.0.intel-macosx.dmg,但是当我运行fpc -i时,它列出的唯一目标Macintosh平台是"Darwin for i386",尽管2.4版本说明书中说它可以针对"64位Mac OS X(x86_64/ppc64)"进行目标设置。
2个回答

10

根据Jonas Maebefpc-pascal邮件列表上的说法,有两个选项:

  • 使用-Px86_64选项运行fpc。(-P选项似乎尚未记录文档。)
  • 直接运行ppcx64而不是fpc。(没有任何选项,fpc会运行ppc386。)

这两个选项都对我有效。


有点晚了,但是:-P在buildfaq中有记录http://www.stack.nl/~marcov/buildfaq.pdf请注意它是一个“fpc”参数,而不是“ppc<arch>”参数。 - Marco van de Voort
有几个问题与那份文档相矛盾,@Marco。首先,根据谷歌的数据,全球只有两个页面链接到它;你的评论让它变成了3个。其次,它是托管在你的个人网站上而不是freepascal.org。第三,它是PDF格式而不是Web友好的HTML。第四,尽管它的名字是FAQ格式,但实际上并不是。第五,任何不编译FPC本身(像我这样的人)都没有理由去阅读它。第六,它提到了“-P”,但并没有对其进行详细说明。要真正被记录下来,“fpc -h”和用户手册的§5.1(特别是§5.1.4)需要说明“-P”的存在以及它的作用。 - Rob Kennedy
1
  1. 它链接在FPC网站的“更多信息”页面上。
  2. 是的,但这主要也是因为它与发布版本不兼容。
  3. http://www.stack.nl/~marcov/buildfaq/
  4. 阅读介绍,它起源于一个常见问题文档。
  5. 这是唯一一个相对完整记录交叉编译的文档,这被认为是一个高级话题(再次阅读常见问题介绍)。我告诉你实情,而不是应该如何。 6a. fpc -h 显示实际编译器帮助,它没有自己的帮助。 6b. 这不错,但这只是你想要的方式,而不是现实。
- Marco van de Voort

0

使用-m64

实际上,GNU Pascal 文档甚至没有说明它在Mac OS X上得到支持。另一方面,FreePascal可以在所有Mac OS X变体(Intel和PPC,32位和64位)上运行。


1
虽然fpc没有明确说明它无法识别该选项(尽管它未经文档记录),但它对输出没有任何影响。它生成的.o文件仍然是32位文件。我是否让你觉得我正在寻找一个选项来给予GCC?不,我已经有了来自GCC的64位目标代码。我正在尝试将其与由Free Pascal编译的代码链接在一起,但为此,我需要Free Pascal生成64位目标文件。GNU Pascal甚至都没有涉及,所以它是否支持Macintosh是无关紧要的。 - Rob Kennedy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接