gpt4 book ai didi

c++ - 在 C 和我的语言之间创建 FFI

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:39 25 4
gpt4 key购买 nike

假设我实现了一种编程语言(我们暂时称它为A)。 A 与 C 非常相似。

我希望我的用户能够访问现有 C 库中的函数和数据结构。这可能吗?如果是,那么天真的实现会是什么样子?

一个

  • 用C++实现
  • 编译成机器码
  • 需要访问闭源 C 库

最佳答案

这在很大程度上取决于 A 是哪种语言。

如果它是一种编译语言,那么您需要生成适当的汇编代码(查找“调用约定”,尤其是 C 调用约定)来调用适当的 C 函数。如果您使用的是 LLVM,则可以使用 declarecall 语句相当轻松地完成此操作。完成后,您需要将可执行文件链接到有问题的 C 库。

但是,如果它是一种解释型语言,那么您将需要动态加载该库。你如何做到这一点是平台特定的:例如,在 unix 类型的系统上,这可以通过 dlopen 函数来实现。

关于c++ - 在 C 和我的语言之间创建 FFI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29449809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com