从Visual Studio Code构建Delphi项目

Luk*_*ich 5 delphi freepascal group-project visual-studio-code

我已经通过FPC和GDB在Visual Studio Code中设置了用于对象Pascal的构建和调试环境,但是我只是通过以下方式使仅包含1个.pas文件的程序的构建过程有效

"command": "fpc",
"args": [ "-g", "-Px86_64", "helloWorld.pas" ],
Run Code Online (Sandbox Code Playgroud)

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

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

Mar*_*ort 3

为了让其他可能偶然发现这一点的人了解一些事实:

  • 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 或文本编辑器中)的目录和开关,并创建手动构建脚本或 lazarus (.lpi) 项目。

然而,重要的是要记住,默认的 FPC 模式不是 Delphi 模式,因此在执行 FPC 时始终确保手动启用 Delphi 模式 (-Sd)

Lazarus 内的团体项目支持是非常新的(几个月),据我所知,甚至还没有稳定版本。不过,如果您创建一堆 .lpis,则在 .lpis 上包含一系列 lazbuild 命令的批处理文件/shell 脚本可能会做到这一点。

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

  • 它通过 Omnipascal 和 Language Pascal 扩展支持 Object Pascal。 (2认同)