我发现Elixir程序可以通过NIF(本机实现的功能)或OS级别的端口运行C代码.阅读过那些和类似的链接,我不是百分之百地知道何时使用一种或另一种方法(或完全不同的其他方法?),并认为对我自己和其他新手进行直接比较会很好.谁能提供?
我正在寻找一种方法来扩展(即使用 %extend 指令向类型添加新成员)在库文件本身中定义的类型,而库的头文件仅提供该类型的前向声明。
将类型视为其定义在编译时已知,会导致以下警告:
Warning 303: %extend defined for an undeclared class [name of the type].
Run Code Online (Sandbox Code Playgroud)
有没有人知道这个问题的解决方案或解决方法?我确定有一个,因为 SWIG 的文档指出 swig 每次找到一个时都假定未知类型是结构体或联合体。
提前谢谢了!
哪种语言(C或C++)最适合编写本机库并使用不同语言使用语言绑定(例如,使用JNI或Ruby的C扩展),为什么?
假设我已经实现了一种编程语言(我们现在将其称为A )。A与C非常相似。
我希望我的用户能够访问现有 C 库中的函数和数据结构。这可能吗?如果是的话,一个幼稚的实现会是什么样子?
A