C++ Lua库 源码编译及使用(VS2019)
源码编译
官网下载源码:
Lua: download
新建 空白解决方案
在该解决方案下新建空项目 lualib(编译静态库)
在该解决方案下新建空项目 luadll(编译动态库)
在该解决方案下新建空项目 lua(编译解释器lua.exe)
在该解决方案下新建空项目 luac(编译编译工具luac.exe)
共创建4个项目
源码解压后把src目录复制到解决方案目录下
编译静态库 lualib
把src中的所有头文件(.h)和所有除去lua.c luac.c的源文件(.c)添加到 lualib 项目中
生成静态库,注意选择需要的版本(debug/release)和平台(x64/x86)
编译动态库 luadll
把src中的所有头文件(.h)和所有除去lua.c luac.c的源文件(.c)添加到 luadll 项目中
添加预处理器 LUA_BUILD_AS_DLL
生成动态库,注意选择需要的版本(debug/release)和平台(x64/x86)
编译解释器lua.exe
把src中的所有头文件(.h)和所有除去 luac.c 的源文件(.c)添加到 lua 项目中
生成解释器,注意选择需要的版本(debug/release)和平台(x64/x86)
编译编译工具luac.exe
把src中的所有头文件(.h)和所有除去 lua.c 的源文件(.c)添加到 luac 项目中
生成编译工具,注意选择需要的版本(debug/release)和平台(x64/x86)
使用
简单测试
#include <iostream>extern "C" {
#include "include/lua/lua.h"
#include "include/lua/lualib.h"
#include "include/lua/lauxlib.h"
}#ifndef _DEBUG
#else
#ifdef _WIN64
#pragma comment (lib,"lib/x64/Debug/lualib.lib")
#else
#pragma comment (lib,"lib/x86/Debug/lualib.lib")
#endif // _WIN64
#endifint main()
{char *s = NULL;_get_pgmptr(&s);std::string path(s);size_t i = path.find_last_of("\\");path = path.substr(0, i);i = path.find_last_of("\\");path = path.substr(0, i);std::string lua = path + "\\lua\\test.lua";std::string luac = path + "\\lua\\test.luac";std::cout << "Excute lua file: ";lua_State* l = luaL_newstate();luaL_openlibs(l);luaL_dofile(l, lua.c_str());lua_close(l);std::cout << "Excute luac file: ";l = luaL_newstate();luaL_openlibs(l);luaL_dofile(l, luac.c_str());lua_close(l);//delete[] s; 这里会报错,不知道什么原因,不会内存泄漏吗?//s = NULL;
}
测试代码:
https://gitee.com/epson/test-lua.git
C++ Lua库 源码编译及使用(VS2019)相关推荐
- C++ JsonCpp库 源码编译及使用(VS2019)
下载JsonCpp库源码: git clone git@github.com:open-source-parsers/jsoncpp.git 如果打不开可以试试: git clone git@gite ...
- C++ LZ4库 源码编译及使用(VS2019)
下载LZ4库源码: git clone git@github.com:lz4/lz4.git 如果打不开可以试试: git clone git@gitee.com:epson/lz4.git 打开bu ...
- Jpeg-9e源码编译(Win10+VS2019)
源代码下载网址 Independent JPEG Group 下载后得到文件 解压缩到"D:\SourceCodes\jpeg-9e" 在目录"D:\SourceCode ...
- LibreCAD v2.2.0源码编译,使用VS2019+Qt5.12.9+Boost1.71.0环境
零.前言 LibreCAD is a fork of QCAD community edition version 2.0.5.0;therefore, any modifications of or ...
- 在Ubuntu 14.04 64bit上编译并研究State Threads网络线程库源码
State Threads是一个广受关注的高性能网络线程库,winlin在SRS中做了比较充分的应用,我很遗憾直到现在才精心研究它.下面是我的研究实录,以作备忘. 一.源码编译 下面是在Ubuntu ...
- python3 llvmlite源码_将Paddle-Lite在树莓派上源码编译及编译python预测库
新手使用Paddle-Lite 第一篇博客,第一次接触树莓派,把我的经历说一说. 一.为什么选Paddle-Lite? 因为我第一次接触人工智能,PaddlePaddle官网https://www.p ...
- java jni编译_从源码编译Android系统的Java类库和JNI动态库的方法
利用源码编译Android系统Java类库 1.编写Java项目和Android.mk文件 ├── Android.mk └── src └── com └── lhw └── framework └ ...
- python源码编译为库_【Python笔记】如何源码编译依赖LAPACK和ATLAS库的NumPy包
上篇笔记介绍了不依赖lapack和atlas库的NumPy包源码编译/安装方法,但"纯净版"的NumPy会损失性能,故本篇笔记说明如何源码编译安装依赖lapack和atlas库的N ...
- 解决源码编译Python3后缺少ssl tkinter,bz2等库的问题
Python3以后,使用源码编译python时默认不会包含ssl,tkinter等库,这意味着在调用"import _ssl"或者"import _tkinter&quo ...
最新文章
- 【C语言】数组指针与指针数组的区分与应用
- pc端常见布局样式总结(针对常见的)
- wordpress如何让百度快速收录_百度快速收录权益获取与使用说明
- c++ 如何判断无效指针_如果链表中有环,我们应该如何判断?
- Python3需要安装的MySQL库是mysqlclient
- Inno_Setup使用笔记(简单完成安装包制作)
- 可视化折线圆形统计图_统计图表的优雅变换:Altair|可视化系列06
- (转)淘淘商城系列——Solr的安装
- Spring 框架学习 有用
- PHP获取指定月份第一天、最后一天
- Atitit 项目中的勋章体系,,mvp建设 ,荣典体系建设
- sqlserver 分割多个文件_鸿萌易备:SQL Server 数据库的全方位备份解决方案
- LaTeX学习:Texlive 2019和TeX studio的安装及使用
- 网络端口号和协议号(大全)
- 2019顶级WordPress音频和视频插件
- 三分钟集成连连支付方法(以认证支付为例)
- 如何让多个word文档合并成一个
- 在一个Activity里有多次调转网页,自定义返回上一级
- 如何从ZIP文件解压缩文件
- 3dsmax游戏建模掌握这些技巧方法,6个月学会就业!
热门文章
- QML <2> Canvas 自定义绘制 网易云歌单封面实现
- iOS15.6和iOS15.5哪个更省电 iOS15.6建不建议升级
- Ever-Flowers IN Never-Dream(19)
- 飞机大战代码(高仿),完美复原原游戏,好玩到停不下来
- Linux删除文件之后磁盘空间没有被释放
- diy nas配置推荐2019_打造家用NAS之一(2019年版)
- HGAME 2022 week1 个人部分WP
- 关于短网址短链接生成的算法问题
- Mysql中的读写锁,表锁和行锁,间隙锁
- 大数据毕设/课设 - 数据大屏监控可视化设计与实现