lua|lua 源码编译
lua 源码编译
本文介绍了使用 Visual Studio 编译 lua 源码的方法。
下载源码
源码下载在 这个页面
建立解决方案
建立一个空白解决方案,源码压缩包解压后,将 src 目录拷贝到解决方案根目录:
文章图片
编译 lua library
在解决方案下建立一个静态库项目 lualib, 建立项目时选择空项目、取消预编译头。
文章图片
在 lualib 项目上右键添加现有项,导航到刚刚拷贝的 src 目录,选择除了 lua.c, luac.c 之外的所有 .c 文件。
文章图片
右键生成即可编译出 lualib.lib。
编译 lua 解释器
【lua|lua 源码编译】在解决方案下建立一个控制台项目 lua, 建立项目时选择空项目、取消预编译头。
文章图片
在 lua 项目上右键添加现有项,导航到刚刚拷贝的 src 目录,选择 lua.c, lua.h 文件。
文章图片
在 lua 项目上右键生成依赖项,让 lua 项目依赖于 lualib 项目。
在 lua 项目上右键属性-->链接器,设置附加库目录为 lualib 的输出目录,设置附加依赖项为 lualib.lib。这样 lua 项目就可以使用 lualib.lib 了。
文章图片
文章图片
右键生成即可编译出 lua.exe
双击 lua.exe 可以在控制台里执行 lua 代码:
文章图片
编译 luac 编译器
在解决方案下建立一个控制台项目 luac, 建立项目时选择空项目、取消预编译头。
之后的设置流程跟 lua 项目的一样。只是添加现有项的时候只需要添加一个 luac.c 文件即可。
建立测试项目
在解决方案下建立一个控制台项目 luatest。
在 luatest项目上右键生成依赖项,让 luatest 项目依赖于 lualib 项目。
在 luatest项目上右键属性-->链接器,设置附加库目录为 lualib 的输出目录,设置附加依赖项为 lualib.lib。这样 luatest 项目就可以使用 lualib.lib 了。
在 luatest项目上右键属性-->C++, 设置附加包含目录为 $(SolutionDir)src:
文章图片
输入测试代码:
#include "stdafx.h"extern "C"
{
#include
#include
#include
}int main()
{
// 创建一个 lua 虚拟机
lua_State *L = luaL_newstate();
// 注册库对象到 lua 虚拟机中
luaL_openlibs(L);
// 将一段 lua 脚本转换成一个 lua function ,然后将这个 lua function 放到栈顶
luaL_loadstring(L, "print(\"hello lua!\")");
// 调用栈顶的 lua function
lua_pcall(L, 0, LUA_MULTRET, 0);
lua_close(L);
return 0;
}
右键生成即可编译出 luatest.exe
推荐阅读
- Android事件传递源码分析
- Quartz|Quartz 源码解析(四) —— QuartzScheduler和Listener事件监听
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
- ffmpeg源码分析01(结构体)
- Java程序员阅读源码的小技巧,原来大牛都是这样读的,赶紧看看!
- Vue源码分析—响应式原理(二)
- SwiftUI|SwiftUI iOS 瀑布流组件之仿CollectionView不规则图文混合(教程含源码)
- java|java b2b2c shop 多用户商城系统源码- config 修改配置
- Spring源码解析_属性赋值
- Android下的IO库-Okio源码解析(一)|Android下的IO库-Okio源码解析(一) 入门