win c++使用lua环境配置 5.3.5版本

embedded/2024/10/18 18:29:21/

lua_0">编译lua

下载lua源码,github仓库

使用vs编译源码,新建一个静态库项目(只会生成lib文件),想要dll的话就新建dll项目(有一个lib文件和dll文件)

lua源码下面的文件夹都是,复制到vs项目中
lib目录是我手动建的,我把编译好的lib文件放lib目录下了
sourcecode
点击生成就好了

lua_10">在c++中使用lua

包含目录写上面的liblua/include
包含目录

库目录写刚编译出来的lib目录,上图的lib目录

lib库目录

链接器添加lualib.lib
链接器

c++ 测试demo示例

c++要include lua.hpp 不然会报错

// lua.hpp
// Lua header files for C++
// <<extern "C">> not supplied automatically because Lua also compiles as C++extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}

这里的extern "C"就是告诉编译器按c格式来。兼容c++

#include <lua.hpp>#include <iostream>using namespace std;static void StackDump(lua_State* L) {int top = lua_gettop(L);for (int i = 1; i <= top; ++i) {int t = lua_type(L, i);switch (t) {case LUA_TSTRING: {cout << lua_tostring(L, i);break;}case LUA_TBOOLEAN: {cout << lua_toboolean(L, i);break;}case LUA_TNUMBER: {if (lua_isinteger(L, i))cout << lua_tointeger(L, i);elsecout << lua_tonumber(L, i);break;}default: {cout << lua_typename(L, i);break;}}cout << " ";}cout << endl;
}int main()
{lua_State* L = luaL_newstate();lua_pushboolean(L, 1);lua_pushnumber(L, 10);lua_pushnil(L);lua_pushstring(L, "hello");StackDump(L);return 0;
}

http://www.ppmy.cn/embedded/16584.html

相关文章

AR模块中通用对账的优化尝试

背景&#xff1a; 用户在唯品会下单后&#xff0c;是可以自由选择不同支付方式进行支付的&#xff0c;支付后&#xff0c;支付系统会将一笔收款单传送给AR&#xff0c;AR财务可以从此处看到收款情况。但是&#xff0c;真实的资金是按照不同支付方式&#xff0c;由银行或者其他渠…

硬件玩物 | 性价比超高的NAS,威联通【TS-464-C2】快速上手初体验!

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路。] 大家好&#xff0c;我是【WeiyiGeek/唯一极客】一个正在向全栈工程师(SecDevOps)前进的技术爱好者 作者微信&#xff1a;WeiyiGeeker 公众号/知识星球&#xff1a;全栈工程师修炼指南 主页博…

Bentley二次开发教程27-交互窗口-界面开发方法

界面设计概述 引言 在我们掌握了交互式工具的使用方法后&#xff0c;在使用过程中会发现&#xff1a;虽然工具中拥有多种交互的手段&#xff0c;但仅凭工具中鼠标&#xff0c;特殊按键与信息提示等交互方法&#xff0c;没有办法同时对多个信息进行展示&#xff0c;也不够直观…

【漏洞复现】SpringBlade dict-biz SQL注入漏洞

0x01 产品简介 SpringBlade 是一个由商业级项目升级优化而来的微服务架构 采用Spring Boot 2.7 、Spring Cloud 2021 等核心技术构建,完全遵循阿里巴巴编码规范。提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。 0x02 漏洞概述 SpringBlade d…

08 内核开发-避免冲突和死锁-mutex

08 内核开发-避免冲突和死锁-mutex 课程简介&#xff1a; Linux内核开发入门是一门旨在帮助学习者从最基本的知识开始学习Linux内核开发的入门课程。该课程旨在为对Linux内核开发感兴趣的初学者提供一个扎实的基础&#xff0c;让他们能够理解和参与到Linux内核的开发过程中。 …

Android在AMS中拦截某个Activity的启动

文章目录 Android在AMS中拦截某个具体Activity的启动方案一&#xff08;推荐&#xff09;&#xff1a;在ActivityTaskManagerService.startActivityAsUser方法中去作拦截方案二&#xff1a;在Dialog.show()方法中直接对这个包名所创建的Dialog做限制 Android在AMS中拦截某个具体…

【极速前进】20240422:预训练RHO-1、合成数据CodecLM、网页到HTML数据集、MLLM消融实验MM1、Branch-Train-Mix

一、RHO-1&#xff1a;不是所有的token都是必须的 论文地址&#xff1a;https://arxiv.org/pdf/2404.07965.pdf 1. 不是所有token均相等&#xff1a;token损失值的训练动态。 ​ 使用来自OpenWebMath的15B token来持续预训练Tinyllama-1B&#xff0c;每1B token保存一个che…

MATLAB初学者入门(17)—— 爬山算法

爬山算法是一种局部搜索算法&#xff0c;它采用贪心策略来迭代改进问题的解决方案&#xff0c;直到达到局部最优。爬山算法在解决一些优化问题时很有用&#xff0c;尤其是当问题的解空间是离散的&#xff0c;并且我们可以容易地定义“邻居”概念时。 案例分析&#xff1a;使用…