什么最适合编写一次本机库,并通过语言绑定跨多种语言使用它

What is best suited for writing a native library once and use it across multiple languages with language bindings?

本文关键字:语言 绑定 本机 一次 什么      更新时间:2023-10-16

哪种语言,C 或 C++,最适合编写一次本机库,并在具有语言绑定的不同语言中使用它(例如,使用 JNI 或 Ruby 的 C 扩展),为什么?

C,因为

  1. 用 C++ 编写的程序可以使用 C 库,反之则要棘手得多 - 任何在 C++ 中可用但以 C 语言不可用的构造都不能导出到 C 程序中,这可能会使您的导出变得复杂。
  2. C 库将具有较少的依赖项。 C++库通常依赖于libstdc++,它是如此之大,例如在嵌入式系统上,或者更一般地说,在资源不足的系统上,它并不总是可用。

如果你愿意,你可以用C++编写你的库,只要你提供外部"C"绑定/导出,以便其他运行时可以使用它。