【问题标题】:Building Delphi project from Visual Studio Code从 Visual Studio Code 构建 Delphi 项目
【发布时间】:2017-04-12 13:49:14
【问题描述】:

我已经通过 FPC 和 GDB 在 Visual Studio Code 中为 Object Pascal 设置了构建和调试环境,但我只是通过构建过程为仅包含 1 个 .pas 文件的程序工作

"command": "fpc",
"args": [ "-g", "-Px86_64", "helloWorld.pas" ],

现在,我需要构建相当大的 Delphi 项目组(类似于解决方案?),它包含主项目文件 .groupproj。

有没有办法以某种方式通过 FPC 构建 .groupproj?
或者至少有一些解决方法,比如转换为 .lpi,然后通过 FPC 构建?
或者至少从 VS Code 调用 Delphi 编译器/构建器并通过它构建整个项目组? (但我不喜欢这个选项,因为我更喜欢不使用 Delphi)

【问题讨论】:

  • 但是我找不到,怎么做(还在google,但是Object Pascal、Delphi和FPC对我来说是新的)。
  • 这是一个 Free Pascal 问题,而不是 Delphi 问题。因此,包含 Delphi 标记会产生误导。
  • delphi.wikia.com/wiki/Compile_from_Commandline 不会帮助你用 fpc 编译它(我很确定这不会很容易,但可能会帮助你了解如何在 Delphi 中构建它。
  • Lazarus has a converter 用于将 Delphi 项目转换为 Lazarus 项目。
  • Remy:转换器在 .dpr 上工作(并从该文件到源代码的其余部分)。据我所知,它会忽略任何纯粹的配置文件(如 .cfg、.dproj、.groupproj 等)。对于其余部分,您可能还需要添加 -Sd 参数以强制编译器与 delphi 语言兼容。

标签: visual-studio-code freepascal delphi group-project


【解决方案1】:

为可能偶然发现此问题的其他人直接了解一些事实:

  • FPC 支持 Delphi 源文件(.lpr/.dpr、.pp/.pas 和 .inc)。不是 Delphi 元信息 (.dproj/.dof/.bpg/.cfg/.groupproj) 无论如何都依赖于 Delphi 版本。
  • Lazarus 转换工具还可以转换 .dfms。基本上它是一个 .dfm 清理器和 Uses 子句增强器,就像 Delphi 版本之间的一些转换工具一样。然而,默认情况下,它也会将 Delphi 代码(在 FPC 的 Delphi (-Sd) 模式下工作)更改为 Lazarus 首选的 objfpc 方言(-S2 模式)。尝试前请务必备份,并彻底检查转换工具的配置。
  • FPC 和 Delphi 命令行参数不同。
  • FPC 不支持 .lpi 等 Lazarus 元数据格式。然而,Lazarus 实用程序 Lazbuild 确实支持从命令行构建 Lazarus 项目。

但幸运的是,基础是相同的

  1. 一个主程序或库文件文件)
  2. 一组单元(.pas 文件)和包含目录(.inc 文件)。 FPC 区分这两者,而 delphi 没有。
  3. 必须将自动创建的表单添加到项目中。
  4. 任何其他命令行开关,例如定义设置、范围检查优化选项。

因此,在最坏的情况下,检查 Delphi 项目(在 IDE 或 texteditor 中)的目录和开关,并创建手动构建脚本或 lazarus (.lpi) 项目。

但请务必记住,默认 FPC 模式不是 Delphi 模式,因此在执行 FPC 时请务必手动启用 Delphi 模式 (-Sd)

Lazarus 中的小组项目支持非常新(如几个月),而且 afaik 甚至还没有稳定版本。但是,如果您创建一堆 .lpis,则在 .lpis 上带有一系列 lazbuild 命令的批处理文件/shellscript 可能会做到。

附:将 VSCode 扔到公共汽车下并使用 Lazarus。

【讨论】:

  • 我想用VS Code,因为我已经用它来做C++开发了。
  • 那是因为它理解 C++ 并且可能允许正确的语法导航和其他编辑器/IDE 功能。然而,帕斯卡不会,但拉撒路会。
  • 它通过 Omnipascal 和 Language Pascal 扩展支持 Object Pascal。
  • 顺便说一句,VS Code 已经可以与 .lpi-s 一起使用,我可以使用 GDB 从 VS Code 调试 FPC 输出可执行文件,但是我在构建 .dproj-s 时仍然遇到问题,因为我总是得到运行输出可执行文件时出错。
  • 为什么这被否决了?它是 FPC 支持或不支持的事实摘要。wrt Delphi 项目元文件。
猜你喜欢
  • 1970-01-01
  • 2023-03-09
  • 2021-08-08
  • 2018-07-07
  • 1970-01-01
  • 2011-04-08
  • 1970-01-01
  • 1970-01-01
  • 2018-06-02
相关资源
最近更新 更多