一、简单了解sol2
-
Sol2简介
Sol是一个用于C+绑定Lua脚本的库,仅由头文件组成,方便集成,并提供了大量易用的API接口,可以便利地将Lua脚本与C+代码绑定起来,而不必去关心如何使用那些晦涩的Lua C API。正如其作者所言,Sol的目的就是提供极其简洁的API,并能高效到与C语言媲美,极大地来方便人们使用。
-
编译条件
Sol支持Lua的绝大多数版本,包括 5.1、5.2、5.3和LuaJit等,但由于代码中用到了许多C+11/14特性,因此编译时需要编译器支持C14标准甚至C+17标准
-
安装方法
去 https://github.com/ThePhD/sol2 下载一个sol.hpp , 然后放到 /usr/local/include 里即可,已经在100服务器上面部署好了环境,sol.hpp在/usr/local/include目录下。
-
为什么强大
只需要包含一个sol.hpp头文件即可(集成性很高,可能根据不同lua脚本需要一些简单的依赖)不需要任何其他的东西, 没有什么静态库/动态库之类的东西,也不需要像tolua++一样那么麻烦每个类都要写pkg文件。只需要稍微学习一下Sol2的导出API即可。
-
使用方法
在代码里面通过sol的接口把需要运行的 lua 脚本加载进去,生成对应的c+接口, 然后c的代码就可以直接调用这些lua生成的 c+ 接口,实现了c++直接调用 lua。接口导出是一个动态导出,如果有多个对象需要执行多个lua,则需要再全局变量中首先进行初始化,方便调用lua。