当前位置: 首页 > news >正文

Windows下LuaBridge2.8的环境配置及简单应用

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;
}

输出结果:

效果图

http://www.lryc.cn/news/1428.html

相关文章:

  • 每天10个前端小知识 【Day 10】
  • 【LeetCode】1223. 掷骰子模拟
  • SPSS数据分析软件的安装与介绍(附网盘链接)
  • 2022年38女神节大促美妆、珠宝、母婴、保健电商数据回顾
  • Java笔记-线程同步
  • 通过python 调用OpenAI api_key提交问题解答
  • 图表控件LightningChart .NET再破世界纪录,支持实时可视化 1 万亿个数据点
  • 什么是响应性?
  • 黑马】后台管理176-183
  • Typescript - 类型守卫(typeof / in / instanceof / 自定义类型保护的类型谓词)通俗易懂详细教程
  • 6.8 左特征向量
  • 10个自动化测试框架,测试工程师用起来
  • 城市C友会【官方牵头更多的线下交流的机会,你有怎样的期待?】
  • CSDN 编程竞赛二十七期题解
  • RMI攻击中的ServerClient相互攻击反制
  • 值类型和引用类型
  • 后端开发必懂nginx面试40问
  • Redis为什么这么快?
  • 几种实现主题切换的方式
  • Jenkins使用(代码拉取->编译构建->部署上线)
  • IEEE期刊论文投稿前期准备
  • [AAAI 2022] TransFG: A Transformer Architecture for Fine-grained Recognition
  • 机器学习之决策树原理详解、公式推导(手推)、面试问题、简单实例(python实现,sklearn调包)
  • 一文搞懂CAS实现原理——怀玉
  • typora每次复制文档都要附带图片文件夹?学会配置gitee图床
  • Linux--gdb
  • c++11 标准模板(STL)(std::multimap)(二)
  • 【数据结构】二叉排序树——平衡二叉树的调整
  • 03- pandas 数据库可视化 (数据库)
  • 第三方电容笔怎么样?开学适合买的电容笔