首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将一种语言(例如python)绑定到另一种语言(例如C++)?

如何将一种语言(例如python)绑定到另一种语言(例如C++)?
EN

Stack Overflow用户
提问于 2018-03-01 05:11:19
回答 2查看 0关注 0票数 0

我不是Python专家,但我经常听到这个,关于它的C/C++绑定。这个概念是如何工作的,Python(和Java)如何绑定到基于C的API(如OpenGL)?这东西对我来说一直是个谜。

EN

Stack Overflow用户

发布于 2018-03-01 14:29:43

对于Java而言外部函数接口主要的概念被称为FFI,它是JNI,Python是“Python C API”,Perl是XS等等。

给定一个FFI,你可以编写它的C程序,和/或你可以使用代码生成器从其他语言编写的代码接收元信息中生成这样的C代码。

还有一些特殊语言,比如Cython,它是Python的一个“扩展子集”,它可以轻松生成FFI代码,同时匹配Python的大部分语法和语义 - 可能通常是大多数Python程序员编写Python扩展的最简单方式模块可以编译成快速机器代码,也可以使用一些现有的C-callable库。

这种ctypes方法与传统的FFI方法不同,虽然它自我描述为“Python的外部函数库” - 它依赖于DLL中可用的外部代码(或等效的代码,例如.so动态库在Linux中),并在运行时生成和执行代码以达到动态加载的C代码。方便地避免必须安装任何特殊的工具,用于使用Python访问现有DLL的简单任务,但我认为它不能像FFI“基于链接器”的方法那样扩展(因为它需要更多的运行时间等等) 。我不知道其他语言的其他语言的其他语言的实现,除了python的ctypes以外。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档