背景
sol是一个用于c++绑定lua脚本的库,仅由头文件组成,提供了大量的API接口。
笔者在使用的时候出现了一些问题,花了两天空闲时间去解决,希望能帮到其他用户。
安装
Lua
官网(www.lua.org/start.html) 上有明确的安装教程
curl -R -O http://www.lua.org/ftp/lua-5.4.4.tar.gz
tar zxf lua-5.4.4.tar.gz
cd lua-5.4.4
make linux test
如果,没报错并且在/usr/local/include/下产生一些文件(lua.h,lua.hpp等),那么就成功了。
sol2
去网站(github.com/Rapptz/sol) 下载一个sol.hpp
git clone git@github.com:Rapptz/sol.git
make install
解压后make install,同样/usr/local/include/会生成一个sol文件夹
编译
此时在你的c++项目中#include<sol/sol.hpp>即可使用sol
但这个时候会有一些问题出现。
笔者使用的是cmake来构建,因此下面的操作均为修改CMakeLists.txt
首先你需要将编译参数设置为c++17以上,亲测,c++11不行,c++14会少一些报错,但也有问题。
其次会报:undefined reference to 'lua_pushlstring'
这里你需要将lua库连接到你的可执行文件上
target_link_libraries(main lua) # lua库要连接进去
然后会报:undefined reference to 'dlsym'
这里也是,需要将dl库连接到你的可执行文件上
target_link_libraries(main dl) # dlsym