Windows下LuaBridge2.8的环境配置及简单应用
LuaBridge2.8下载链接:
https://github.com/vinniefalco/LuaBridge/tags
关于Lua的环境配置可参考以下链接(这里不做简述):
https://ufgnix0802.blog.csdn.net/article/details/125341067
下文主要阐述LuaBridge的部署及简易使用。
环境部署
下载后结果如下:
紧接着,我们使用visual studio 2017(其他版本也可)创建一个空项目,部署Lua环境的同时,部署LuaBridge。
LuaBridge不用导出为lib库,只需引入即可,但是也有需要注意的点。那就是在配置vs的项目属性时,我们必须时刻注意路径问题。不可过度添加,如下:
博主将整个LuaBridge的包放在如下位置:
其中,vs的sln文件在如下位置(用于给阅读者定位):
那么我们在项目属性中配置如下:
因为我们需要找到LuaBridge.h文件所在路径,也就是D:\code\cpplua\3rd\include\LuaBridge\LuaBridge-2.8\Source\LuaBridge。
同时我们在cpp文件,也就是main函数所在文件引入该头文件(这时我们发现):
但是当我们进行编译运行时,会出现如下错误:
这时我们查看错误位置:
根据上述描绘的问题,该文件中include文件是基于LuaBridge这个文件夹索引的,而我们在配置项目属性时的附加目录为:D:\code\cpplua\3rd\include\LuaBridge\LuaBridge-2.8\Source\LuaBridge。附加目录的作用其实是将某个文件路径下的文件信息与项目文件路径置于同级(平级)下,而按照LuaBridge.h中的include的方式,比如第21行这个include,实际上就变成:D:\code\cpplua\3rd\include\LuaBridge\LuaBridge-2.8\Source\LuaBridge\LuaBridge\detail\CFunctions.h。我们索引了两次LuaBridge文件夹!!
这时只需要将更改项目属性为:…/3rd/include/LuaBridge/LuaBridge-2.8/Source/
下面为项目文件所在路径:
TIPS:附加目录的作用其实是将某个文件路径下的文件信息与项目文件路径置于同级(平级)下。
其它注意点
注意include引入LuaBridge和include引入luaApi的顺序。
如果我们粗心写反了,会出现如下问题:
简单实例
#include <iostream>
#include <string>
// include的先后顺序以及vs的配置环境路径,都是基础问题!!
#include "lua.hpp"
#include "LuaBridge/LuaBridge.h"
using std::cout;
using std::endl;
using std::cin;
void SayHello1(const char* name) {
cout << "hello " << name << endl;
}
int main() {
lua_State* L = luaL_newstate();
luaL_openlibs(L);
luabridge::getGlobalNamespace(L).addFunction("SayHello1", SayHello1);
luaL_dostring(L, "SayHello1('lua')");
return 0;
}
输出结果: