c++和Scala之间有多少互操作性
How much interoperability is there between C++ and Scala?
每个人都知道Java和Scala,但是c++和Scala之间有多少互操作性呢?例如,来自其中一个的类可以被另一个使用吗?
根本没那么简单。Java和Scala在同一个虚拟机上工作,Scala被设计成可以很好地与Java一起工作。
c++生成本机代码,甚至每个编译器都有自己的方式来生成本机代码。这意味着一些用Visual Studio编译的类将不容易与另一个用gcc编译的类交互。
如果你需要与c++交互,你需要使用JNI的胶水http://en.wikipedia.org/wiki/Java_Native_Interface。我相信在scala中使用它应该很简单。您可以使用Swig使交互更加舒适http://www.swig.org/
为了使这种互操作性成为可能,两个实现必须为相同的中间语言(即Java字节码,. net IL, LLVM)编译。Scala。.Net和c++/CLI是最接近的组合——两者都为。Net生成代码。但即使这样也没那么简单,因为Scala中的类和c++中的类代表的东西略有不同。
一般来说,Scala代表Java VM的Scala, c++代表原生代码的c++,所以一般的答案应该是"不会比其他任意两种随机选择的语言多多少"。
我会去看看JNAerator。它构建了从C/c++/Obj-C头文件到Java接口的桥梁。
相关文章:
- COM 互操作性需要强命名程序集吗?
- CComPtr 和 std::shared_ptr 互操作性
- C和C++原子之间的互操作性
- C/C++ 与 C# 的互操作性命名约定
- C和C++中类型的互操作性
- C++与Fortran的互操作性
- 关于C#与非托管C++的互操作性的持续传奇
- java和c++的互操作性
- 如何从C++和通过COM互操作性访问.NET类的属性
- OpenCL/OpenGL 互操作性纹理段错误
- Swift和Objective-C++互操作性
- Windows XP和Windows 7之间的DCOM互操作性
- 寻找C++到 WPF/Cocoa 互操作性的跨平台、端到端示例
- QML 和 C++ 映像互操作性
- GNU Fortran与C的互操作性
- linux时区互操作性
- VS 2012与VS 2010的互操作性
- 互操作性的工作原理
- C++到D的互操作性
- c++和Scala之间有多少互操作性