Gnatbind 中的 C Binder 开关

C Binder Switch in Gnatbind

我在查看较新版本的 GNAT 工具时发现 Gnatbind 不再具有用于生成 C Binder 文件的开关“-C”。

混合语言环境是否不再需要此活页夹文件,或者它的功能是否已移至另一个开关?

混合语言项目与此无关。绑定是一个Ada-exclusive。 C 或 C++ 中没有绑定

AdaCore 选择删除此开关,因为:

  • Ada 生成的代码就足够了(我们在它变得过时时删除了这个开关,所以我们切换到 Ada 绑定并且从未有过任何问题)
  • 保留 "generate binding in C" 需要他们维护两个版本的活页夹生成代码。
  • 这允许纯 Ada-compiled 程序。

而且您仍然可以在项目中混合使用 C/C++/Ada 源代码。仅当项目中有一些 Ada 源文件时才会发生绑定("Ada" 必须存在于 .gpr 文件的 Languages 部分并且至少也必须存在一个 Ada 源文件)