源码编译

官网下载源码:

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)相关推荐

  1. C++ JsonCpp库 源码编译及使用(VS2019)

    下载JsonCpp库源码: git clone git@github.com:open-source-parsers/jsoncpp.git 如果打不开可以试试: git clone git@gite ...

  2. C++ LZ4库 源码编译及使用(VS2019)

    下载LZ4库源码: git clone git@github.com:lz4/lz4.git 如果打不开可以试试: git clone git@gitee.com:epson/lz4.git 打开bu ...

  3. Jpeg-9e源码编译(Win10+VS2019)

    源代码下载网址 Independent JPEG Group 下载后得到文件 解压缩到"D:\SourceCodes\jpeg-9e" 在目录"D:\SourceCode ...

  4. 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 ...

  5. 在Ubuntu 14.04 64bit上编译并研究State Threads网络线程库源码

    State Threads是一个广受关注的高性能网络线程库,winlin在SRS中做了比较充分的应用,我很遗憾直到现在才精心研究它.下面是我的研究实录,以作备忘. 一.源码编译 下面是在Ubuntu ...

  6. python3 llvmlite源码_将Paddle-Lite在树莓派上源码编译及编译python预测库

    新手使用Paddle-Lite 第一篇博客,第一次接触树莓派,把我的经历说一说. 一.为什么选Paddle-Lite? 因为我第一次接触人工智能,PaddlePaddle官网https://www.p ...

  7. java jni编译_从源码编译Android系统的Java类库和JNI动态库的方法

    利用源码编译Android系统Java类库 1.编写Java项目和Android.mk文件 ├── Android.mk └── src └── com └── lhw └── framework └ ...

  8. python源码编译为库_【Python笔记】如何源码编译依赖LAPACK和ATLAS库的NumPy包

    上篇笔记介绍了不依赖lapack和atlas库的NumPy包源码编译/安装方法,但"纯净版"的NumPy会损失性能,故本篇笔记说明如何源码编译安装依赖lapack和atlas库的N ...

  9. 解决源码编译Python3后缺少ssl tkinter,bz2等库的问题

    Python3以后,使用源码编译python时默认不会包含ssl,tkinter等库,这意味着在调用"import _ssl"或者"import _tkinter&quo ...

最新文章

  1. 【C语言】数组指针与指针数组的区分与应用
  2. pc端常见布局样式总结(针对常见的)
  3. wordpress如何让百度快速收录_百度快速收录权益获取与使用说明
  4. c++ 如何判断无效指针_如果链表中有环,我们应该如何判断?
  5. Python3需要安装的MySQL库是mysqlclient
  6. Inno_Setup使用笔记(简单完成安装包制作)
  7. 可视化折线圆形统计图_统计图表的优雅变换:Altair|可视化系列06
  8. (转)淘淘商城系列——Solr的安装
  9. Spring 框架学习 有用
  10. PHP获取指定月份第一天、最后一天
  11. Atitit 项目中的勋章体系,,mvp建设 ,荣典体系建设
  12. sqlserver 分割多个文件_鸿萌易备:SQL Server 数据库的全方位备份解决方案
  13. LaTeX学习:Texlive 2019和TeX studio的安装及使用
  14. 网络端口号和协议号(大全)
  15. 2019顶级WordPress音频和视频插件
  16. 三分钟集成连连支付方法(以认证支付为例)
  17. 如何让多个word文档合并成一个
  18. 在一个Activity里有多次调转网页,自定义返回上一级
  19. 如何从ZIP文件解压缩文件
  20. 3dsmax游戏建模掌握这些技巧方法,6个月学会就业!

热门文章

  1. QML <2> Canvas 自定义绘制 网易云歌单封面实现
  2. iOS15.6和iOS15.5哪个更省电 iOS15.6建不建议升级
  3. Ever-Flowers IN Never-Dream(19)
  4. 飞机大战代码(高仿),完美复原原游戏,好玩到停不下来
  5. Linux删除文件之后磁盘空间没有被释放
  6. diy nas配置推荐2019_打造家用NAS之一(2019年版)
  7. HGAME 2022 week1 个人部分WP
  8. 关于短网址短链接生成的算法问题
  9. Mysql中的读写锁,表锁和行锁,间隙锁
  10. 大数据毕设/课设 - 数据大屏监控可视化设计与实现