C++和Scala之间有多少互操作性?

Hen*_*son 9 c++ interop scala

每个人都知道Java和Scala,但C++和Scala之间有多少互操作性.例如,一个类可以被另一个类使用吗?

Tri*_*ner 22

这根本不是那么简单.Java和Scala在同一个虚拟机上工作,而scala的设计与java兼容.

C++生成本机代码,甚至每个编译器都有自己的方式来生成本机代码.这意味着使用Visual Studio编译的某些类不会与使用gcc编译的另一个类轻松交互.

如果您需要与C++交互,则需要使用JNI http://en.wikipedia.org/wiki/Java_Native_Interface.我相信将它与scala一起使用应该是直截了当的.使用Swig http://www.swig.org/可以让互动更加舒适

  • 为了绑定用C或Fortran编写的本机库,我是JNA(Java Native Access)的粉丝.它是纯Java解决方案,比JNI需要更少的boilderplate.但是,对于C++,似乎JNI是更好的选择:http://stackoverflow.com/questions/1556421/use-jni-instead-of-jna-to-call-native-code.JNAerator,thoredge的建议是另一个要研究的,并且还为BridJ生成绑定,这可能填补JNA的一些空白. (3认同)