lua|lua 源码编译

lua 源码编译 本文介绍了使用 Visual Studio 编译 lua 源码的方法。
下载源码
源码下载在 这个页面
建立解决方案
建立一个空白解决方案,源码压缩包解压后,将 src 目录拷贝到解决方案根目录:
lua|lua 源码编译
文章图片
编译 lua library
在解决方案下建立一个静态库项目 lualib, 建立项目时选择空项目、取消预编译头。
lua|lua 源码编译
文章图片
在 lualib 项目上右键添加现有项,导航到刚刚拷贝的 src 目录,选择除了 lua.c, luac.c 之外的所有 .c 文件。
lua|lua 源码编译
文章图片
右键生成即可编译出 lualib.lib。
编译 lua 解释器
【lua|lua 源码编译】在解决方案下建立一个控制台项目 lua, 建立项目时选择空项目、取消预编译头。
lua|lua 源码编译
文章图片
在 lua 项目上右键添加现有项,导航到刚刚拷贝的 src 目录,选择 lua.c, lua.h 文件。
lua|lua 源码编译
文章图片
在 lua 项目上右键生成依赖项,让 lua 项目依赖于 lualib 项目。
在 lua 项目上右键属性-->链接器,设置附加库目录为 lualib 的输出目录,设置附加依赖项为 lualib.lib。这样 lua 项目就可以使用 lualib.lib 了。
lua|lua 源码编译
文章图片

lua|lua 源码编译
文章图片
右键生成即可编译出 lua.exe
双击 lua.exe 可以在控制台里执行 lua 代码:

lua|lua 源码编译
文章图片
编译 luac 编译器
在解决方案下建立一个控制台项目 luac, 建立项目时选择空项目、取消预编译头。
之后的设置流程跟 lua 项目的一样。只是添加现有项的时候只需要添加一个 luac.c 文件即可。
建立测试项目
在解决方案下建立一个控制台项目 luatest。
在 luatest项目上右键生成依赖项,让 luatest 项目依赖于 lualib 项目。
在 luatest项目上右键属性-->链接器,设置附加库目录为 lualib 的输出目录,设置附加依赖项为 lualib.lib。这样 luatest 项目就可以使用 lualib.lib 了。
在 luatest项目上右键属性-->C++, 设置附加包含目录为 $(SolutionDir)src:
lua|lua 源码编译
文章图片
输入测试代码:

#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

    推荐阅读