我有一些cpp文件,我想使用FFI将它们与LuaJit结合使用。
但问题是,我必须为几乎每个函数添加extern "c"
个符号,以便FFI可以访问它们。
有没有更简单的方法来完成这项工作?
答案 0 :(得分:0)
可以在单个extern "C"
块中放置多个函数。这允许您只为每个头文件键入extern "C"
一次。
extern "C" {
void function1();
void function2();
}
答案 1 :(得分:0)
虽然它是不可移植的,但您可以实现函数签名并使用名称修改协议生成Mangled name以查找FFI的符号名称。
Linux上的Gcc和Clang使用Itanium C ++ ABI名称管理规则,可以找到here.
在Windows上,MSVC使用未记录的名称修改方案。