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

news/2024/5/15 18:38:23

编译lua

下载lua源码,github仓库

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

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

在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.mrgr.cn/p/38013828

相关文章

数仓分层

基于阿里巴巴OneData方法论最佳实践,在阿里巴巴的数据体系中,建议将数据仓库分为三层:数据引入层(ODS,Operational Data Store)、数据公共层(CDM,Common Dimensions Model)和数据应用层(ADS,Application Data Store)。数据仓库自顶向下的分层和各层用途如下图所示。…

23种设计模式笔记-创建型模式

23种设计模式-创建型模式 笔记模板 模式前提 - 模式: 概念: 规则: 实现细节: 应用场景: 示意图: 代码实现:创建型模式单例、工厂方法、抽象工厂、生成器、原型。单例模式 - 共享独占资源概念:创建型设计模式,保证一个类只有一个实例,提供全局访问点来对单个实例进行访…

防止核心研发数据流失:管理者跳槽怎么办?

在高速发展的科技行业中,核心研发数据是企业最宝贵的资产之一。然而,当高层管理人员或核心技术人员因跳槽等原因离开公司时,他们可能会无意中或有意地携带走企业的核心研发数据,这对于任何企业来说都是一个巨大的风险。为了有效地管理这一风险,企业需要采取综合性的策略来…

02.Kafka部署安装

1 Linux 安装 Kafka 1.1 安装前的环境准备 由于 Kafka 是用 Scala 语言开发的&#xff0c;运行在 JVM 上&#xff0c;因此在安装Kafka之前需要先安装JDK。 yum install java-1.8.0-openjdk* -y kafka 依赖 zookeeper&#xff0c;所以需要先安装 zookeeper。 wget https://ar…

【c++】----STL简介string

目录 1. 什么是STL 2. STL的版本 3. STL的六大组件 4.STL的缺陷 5.string类 1. 为什么学习string类&#xff1f; 6.string类的常用接口说明&#xff08;下面我们只讲解最常用的接口&#xff09; 1.string 常见构造 2.string类的遍历 iterator 迭代器遍历 &#xff08;…

C # 001 新建项目

一、安装Visual Studio过程省略,不做累述。Visual Studio版本的影响不大,不做说明了。官网都有: https://visualstudio.microsoft.com/zh-hans/ 二、着重讲下怎么新建项目, 1、创建新项目窗口需要注意的是项目模板的选择,这里选:控制台应用。2、对于下一步的配置新项目就…

STM32应用开发教程进阶--Wi-Fi通信(ESP8266模块:STA、AP、STA+AP)

实现目标 1、熟悉Wi-F、ESP8266模块 2、掌握ESP8266模块共3种工作模式&#xff1a;STA、AP、STAAP的配置 3、具体实现目标&#xff1a;&#xff08;1&#xff09;AT固件烧录&#xff1b;&#xff08;2&#xff09;ESP8266模块STA、AP、STAAP的配置 一、Wi-Fi概述 1、Wi-Fi定…

二叉树理论和题目

二叉树的种类 在我们解题过程中二叉树有两种主要的形&#xff1a;满二叉树和完全二叉树。 满二叉树 满二叉树&#xff1a;如果一棵二叉树只有度为0的结点和度为 2 的结点&#xff0c;并且度为 0 的结点在同一层上&#xff0c;则这棵二叉树为满二叉树。 这棵二叉树为满二叉树…

面临文件同步需求时 大文件同步方案要怎么选择?

大文件同步在企业数据管理中是一个常见的需求,但在实际操作过程中可能会遇到一系列问题,导致业务效率降低、管理困难。 面临的主要问题包括: 1、传输速度慢:大文件需要较长时间来传输,尤其是在网络带宽有限的情况下,传输效率会更低。 2、断点续传问题:在不稳定的网络环…

Swift - 枚举

文章目录 Swift - 枚举1. 枚举的基本用法2. 关联值&#xff08;Associated Values&#xff09;3. 关联值举例4. 原始值5. 隐式原始值&#xff08;Implicitly Assigned Raw Values&#xff09;6. 递归枚举&#xff08;Recursive Enumeration&#xff09;7. MemoryLayout Swift -…

【学习】如何高效地进行集成测试

在软件开发的过程中&#xff0c;测试环节至关重要。而在这其中&#xff0c;集成测试更是保证软件质量的关键步骤之一。本文将探讨如何高效地进行集成测试&#xff0c;以确保软件的稳定性和可靠性。 一、什么是集成测试 集成测试是指在单元测试的基础上&#xff0c;将模块按照设…

linux之进程信号

目录 一、进程与信号 1.进程与信号的关系 2.信号的种类​编辑 3.信号的处理方式 4.信号概念 二、 信号的产生 1.键盘组合键 2.kill命令 3.系统调用 1.kill 2.raise 3.abort 4.异常 5.软件条件 进程等待补充 三、信号的保存 1.阻塞信号 1.信号的相关概念 2…

Slave SQL线程与PXB FTWRL死锁问题分析

1. 问题背景 2.27号凌晨生产环境MySQL备库在执行备份期间出现因FLUSH TABLES WITH READ LOCK未释放导致备库复制延时拉大,慢日志内看持锁接近25分钟未释放。 版本:MySQL 5.7.21 PXB 2.4.18慢查询日志:备份脚本中的备份命令:mysql_kill.sh的主要逻辑内容:备份参数:2. 问题…

查找datafocus安装路径

1.cat /etc/profile | grep DATA2.解读下面一行 master-192-168-0-15:/df-share 表示该文件系统是通过网络文件系统 (NFS) 挂载的,其位置为 master-192-168-0-15 主机上的 /df-share 目录实际上,在主机上并没有名为 /df-share 的目录,这是一个挂载点的名称,而不是实际的目录…

大型企业文件下发时 如何确保安全又高效?

大型企业,尤其是集团型、跨国等类型的企业,会存在多个分支机构,在运营过程中经常会存在文件下发的场景,所以大型企业文件下发都是怎么做的呢? 首先来看看大型企业文件下发会涉及到哪些方面: 1、政策传达:企业的新政策、规章制度或重要通知需要下达到各个部门或分支机构…

如何调节电脑屏幕亮度?让你的眼睛更舒适!

电脑屏幕亮度的调节对于我们的视力保护和使用舒适度至关重要。不同的环境和使用习惯可能需要不同的亮度设置。可是如何调节电脑屏幕亮度呢&#xff1f;本文将介绍三种不同的电脑屏幕亮度调节方法&#xff0c;帮助您轻松调节电脑屏幕亮度&#xff0c;以满足您的需求。 方法1&…

CH592 CH582 CH573 蓝牙运行时调整RTC

前言: CH592芯片在使用蓝牙外部32K精度比较高(根据选择的外部32.768K晶体,精度一般在20ppm以内)。直接使用内部32K不校准误差约为百分之二,校准后可以做到0.1%-0.3%精度。 使用外部32K需要消耗一颗晶振的物料,同时芯片的相应GPIO会被占用。如果对于32K的误差要求不是很高…

Pod monitoring of Nodejs

一、Nodejs添加接口 1、nextjs用法 安装包prom-client,在ping同一目录层级创建接口api/ssr/metrics 比如首页https://mik.dev.platform.michaels.com/api/ssr/metrics dc项目https://mik.dev.platform.michaels.com/api/ssr/dc/metrics import { register, collectDefaultMet…

建立成功平台工程的关键:自助式 IaC

了解团队部署自助式IaC的实践方法从技术上讲,云一直都是自助式服务,但由于其在实践中的复杂性,许多开发人员并不喜欢。随着公司采用现代架构(云原生、无服务器等)和新的提供商(多云、SaaS 应用程序),以及云提供商发布更多服务,云变得更加难以使用。这就是为什么有竞争…

VS2022 配置OpenCV开发环境详细教程

OpenCV OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库&#xff0c;由Intel开发并首先发布于1999年。OpenCV被广泛用于实时图像处理、视频分析、物体检测、面部识别、机器人视觉以及许多其他领域。它支持C、Pytho…