[英]Creating FFI between C and my language
假设我已经实现了一种编程语言(现在将其称为A )。 A与C非常相似。
我希望我的用户能够从已经存在的C库中访问函数和数据结构。 这可能吗? 如果是这样,天真的实现会是什么样子?
一种
这在很大程度上取决于A语言的种类。
如果是编译语言,则需要生成适当的汇编代码(查找“调用约定”,尤其是C调用约定)以调用适当的C函数。 如果您使用的是LLVM,则可以通过使用declare
和call
语句轻松地做到这一点。 完成此操作后,您需要将可执行文件链接到相关的C库。
但是,如果它是一种解释性语言,则需要动态加载该库。 具体操作方式是特定于平台的:例如,在UNIX类型的系统上,可以通过dlopen
函数来实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.