Delphi Linux64:如何检索由项目选项版本设置的版本信息?

4

我了解到 Linux 上并没有像 Windows 那样对可执行文件中的版本号有一个通用的标准结构,相反,FreePascal 制定了自己的标准,而 Delphi 则允许用户定义版本信息

如果我们可以将版本信息放入其中,那么肯定也能够提取出来吧?具体在 Linux64 上如何实现呢?

我曾在 Studio\19.0\source\rtl\posix 目录下搜索过 *.pas 和 *.inc 文件,但并未发现任何与“version”或“fileinfo”相关的内容。

在使用 Kylix 时,我曾经使用过 libc 中的 argp_program_version 函数。

在一个全新的 DUnitX 项目中,将 {$ *.res} 添加到 DPR 中以使版本信息保留,然后可以查看 Linux64 的 Project Options,发现该项目的 CFBundleVersion 编号默认为 1.0.0。那么在我的 Linux64 可执行文件中如何在运行时获取 CFBundleVersion 呢?

如果不可能的话,Delphi是否应该匹配FreePascal标准,并将文件信息放入某个能够在运行时由Lazarus和Delphi都能查看的地方呢?

Delphi应该/可以做什么完全取决于EMBT,您应该在他们的论坛上讨论。这与此处无关;您的浏览器地址栏中的URL不包含embarcadero.com,因此我们对他们应该/可以做什么没有影响力。 - Ken White
1个回答

0
这篇来自https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Version_Info的文章摘录(在Windows和MacOS/iOS部分都提到)可能会有所帮助:
前往“工具”>“选项”>“IDE”>“环境变量”,添加一个名为SAVEVRC的新用户变量,值为TRUE。此变量启用生成.vrc文件,其中包含自动生成的构建号和其他信息。
另一段摘录(不确定是否与上述SAVEVRC相关)如下:
注意:如果您定义了VersionInfo资源并通过项目文件中的$R指令将其添加到项目中,则编译器将忽略项目选项对话框中的Version Info设置,并使用自定义资源数据,因为应用程序在Windows上只能有一个VersionInfo资源。

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