gpt4 book ai didi

programming-languages - 在 Ada (GNAT) 中在编译时指定不同的平台特定包

转载 作者:行者123 更新时间:2023-12-04 22:52:02 25 4
gpt4 key购买 nike

我还是 Ada 编程世界的新手,所以如果这个问题很明显,请原谅我。

我正在研究开发一个应用程序(在 Ada 中,使用 2005 修订版中的功能),它从串行端口读取并基本上执行从外部设备接收的字符串和数字的操作。

现在我的意图是可能首先使用 Florist 和 POSIX 终端接口(interface)在 Linux 上完成所有串行工作......我将使用 Windows/MacOS/etc... 其他时间,但我想保持该选项打开.

无论我做什么,我都想遵循 Ada 的最佳实践。因此,不是像 C 下的条件编译这样的 hack(我知道 Ada 无论如何都没有),我想知道您应该如何从命令行指定包文件的更改(例如 gnatmake)?

我现在唯一能想到的是我可以将所有平台包命名为完全相同(即包名称 Serial.Connector 具有相同的文件名)并将它们放在项目存档中的不同文件夹中,然后在编译时指定目录/库查找带有 -I 参数的文件并更改不同平台的目录名称。

这是我使用 C/C++ 为 GCC 展示的方式……这仍然是 Ada 使用 GNAT 的最佳方式吗?

谢谢,
-乔什

最佳答案

这是处理这种情况的一种完全可以接受的方式。如果可能的话,您应该有一个通用的包规范(或多个合适的规范),所有特定于平台的东西都严格限制在相应的包主体变体中。

(如果您确实想走预处理器路径,可以使用名为 gnatprep 的 GNAT 预处理器,但我也不喜欢条件编译,所以我建议使用单独的子目录方法。)

关于programming-languages - 在 Ada (GNAT) 中在编译时指定不同的平台特定包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3321155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com