什么最适合编写一次本机库,并通过语言绑定跨多种语言使用它
What is best suited for writing a native library once and use it across multiple languages with language bindings?
哪种语言,C 或 C++,最适合编写一次本机库,并在具有语言绑定的不同语言中使用它(例如,使用 JNI 或 Ruby 的 C 扩展),为什么?
C,因为
- 用 C++ 编写的程序可以使用 C 库,反之则要棘手得多 - 任何在 C++ 中可用但以 C 语言不可用的构造都不能导出到 C 程序中,这可能会使您的导出变得复杂。
- C 库将具有较少的依赖项。 C++库通常依赖于libstdc++,它是如此之大,例如在嵌入式系统上,或者更一般地说,在资源不足的系统上,它并不总是可用。
如果你愿意,你可以用C++编写你的库,只要你提供外部"C"绑定/导出,以便其他运行时可以使用它。
相关文章:
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 在基于范围的for循环中使用结构化绑定声明
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 视觉studo 2019中的漫画和静态/动态绑定
- 将自由函数绑定为类成员函数
- 将常量指针引用绑定到非常量指针
- 在派生类中绑定非静态模板化成员函数
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- 在 openGL 中多次绑定缓冲区
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 使用结构化绑定'Reflection'
- 为什么 std::绑定错误参数可以成功?
- 如何用其他语言编写带有绑定的Qt插件系统
- 如何使绑定支持脚本语言
- 什么最适合编写一次本机库,并通过语言绑定跨多种语言使用它
- 为什么有些语言更喜欢静态方法绑定而不是动态方法绑定
- 为Qt开发语言绑定
- c++编程语言中的绑定