delphi - 我可以与 Free Pascal 交叉编译(不链接)其他平台吗?

标签 delphi cross-compiling freepascal

我发现使用 Free Pascal 配置交叉编译是可能的,但并不容易,因为系统上必须有目标操作系统的库。

但我只需要快速语法检查来验证项目是否可以编译,不需要链接可执行文件。

那么:是否有编译器选项可供我使用 Free Pascal 进行跨平台测试编译(仅)?

就我而言,在将项目 checkin 源代码管理之前,我想在 Windows 工作站上验证编译器是否可以针对 Linux 或 OSX 目标进行编译。

最佳答案

(请注意,问题的根源不是 FPC ,而是 Apple 不再发布其 binutils 的源代码,这与早期 (ppc) OS X 时代的 cctools 可用版本相反)

是的,这是可能的。基本上,然后(交叉)编译为汇编程序,并尝试在目标上进行汇编和链接。

要查看的命令行参数是

  • -a 不删除汇编程序文件
  • -Aas 选择外部汇编器
  • -s 推迟链接

链接器命令行将写入 ppas.bat/sh 文件。

将所有生成的.s汇编程序文件以及link.res链接描述文件和ppas.sh传输到目标系统,并运行ppas.sh

理论上,应该进行汇编和编译,但实际上您可能需要调整 link.res 和 ppas.sh 以添加正确的搜索路径。许多早期的新目标移植都是通过这种方式完成的(因为初始移植是在编译器中添加适当的目标之前完成的)

关于delphi - 我可以与 Free Pascal 交叉编译(不链接)其他平台吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13080956/

相关文章:

freepascal - 如何确定 MkDir 抛出的异常?

c++ - 免费的 Pascal/C++ 项目在 cout::sentry 中崩溃

delphi - 如何过滤Delphi 2010编译器输出(提示)?

delphi - 请解释以下 "with.. do"行代表什么

delphi比较文本文件内容

linux - 如何从命令行传递 QMAKE 变量?

c# - Android 上的 .NET 框架

rust - 交叉编译后缺少共享库的替代解决方案?

c - Windows API 有滚动条控件吗?

Pascal 中作为返回值的函数