请提供Lua和C/C++协作的推荐方法?

最近我学习了Lua,我们需要它与现有的C代码(HTTP服务器)协同工作。

从Lua书籍上了解,可能有两种方法使它们协同工作:

  • 从Lua中,您可以将C代码包装在共享库(xxx.so)中,Lua使用require导入它们。
  • 从C中,您可以使用现有的Lua API在lua_state上操作,这是一些技巧,但它非常有效。

我采用了这两种方法,一切看起来都很好,使用Lua可以节省大量实现业务逻辑的时间。但我对当前架构感到非常紧张,虽然它没有严重的问题,但我总是担心,如果发生了什么事情,例如严重的性能瓶颈,相关内存等等。

如果有人对此拥有丰富的经验,请给予一些建议。谢谢。

点赞
用户107090
用户107090

Lua被设计成与C和C++良好配合工作。C API就是为此而设的。

你不需要创建和使用共享库来扩展Lua。这是扩展标准命令行解释器的最简单方法,但是在你自己的应用程序中,将静态C库链接到Lua应该更容易(如果不是更容易)。

如果你想看一些Lua的C库的示例,请参考我的。还有许多其他的库。

2013-05-28 02:38:28