一起编译多种语言并将函数从一种语言调用到另一种语言

时间:2013-08-21 18:15:29

标签: compiler-construction compilation multiple-languages

如何编译多种编程语言并将它们链接在一起?由于每种编程语言最适合某些特定情况,我需要使用最好的每种语言,所以我该怎么做?是否可以将java与c ++或c和Python与C或C ++结合使用?是否可以从c或c ++调用java或python函数,反之亦然?

2 个答案:

答案 0 :(得分:2)

  • 为了从C ++调用C,你不需要任何特殊的东西,因为C ++就是这样设计的
  • 您可以使用原生扩展程序从Python调用C,您应该使用ctypesswig阅读更多herehere是如何从Python调用Windows API的示例。
  • 从Java调用本机C库有Java Native Interface,反之亦然阅读更多here
  • 也可以从C调用C ++如果我没记错你需要在C ++代码中使用“extern C”声明here
  • 可以从JavaScript调用C(例如本机节点模块)

事实上,几乎任何语言都有可能因为C库的数量而调用C库,因为这些库很容易从系统移植到系统。事实上,许多复杂的系统使用脚本语言来实现使用C库的所谓胶水代码。无论如何这是一个广泛的话题,你应该告诉你更多关于你的问题,以便我们可以帮助你。如果你想要测试概念,我认为Python方式最简单。

答案 1 :(得分:0)

看一下libffi - 虽然我认为这主要针对的是“解释调用编译”案例。