我有一些cpp文件,想使用FFI将它们与LuaJit组合起来。
但问题是,我必须为几乎每个函数添加extern "c"
符号,让FFI可以访问它们。
是否有更简单的方法来完成这个任务?
是的。定义一个简单、最小化的包装 API 并导出它:
// NOTE: Exported functions do heavy parley and medical-research leveraging C++ under the hood (and only and the hood).
extern "C" {
void achieve_world_peace(void);
void treat_cancer(void);
}
多个函数可以放置在单个extern "C"
块中。这使您可以为每个头文件仅键入一次extern "C"
。
extern "C" {
void function1();
void function2();
}
extern "C"
吗?那么如果我想在我的Lua项目中使用开源cpp文件,这将会非常困难。 - Zehui Linextern "C"
,但这并不意味着所有标记的函数都是与 C 兼容的。 - Sergioextern "C"
块。现在似乎正常工作了。 - Zehui Lin