我了解到 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都能查看的地方呢?