lua 源码编译

lua 源码编译

本文介绍了使用 Visual Studio 编译 lua 源码的方法。

下载源码

源码下载在 这个页面

建立解决方案

建立一个空白解决方案,源码压缩包解压后,将 src 目录拷贝到解决方案根目录:

lua 源码编译_第1张图片

编译 lua library

在解决方案下建立一个静态库项目 lualib, 建立项目时选择空项目、取消预编译头。

lua 源码编译_第2张图片

在 lualib 项目上右键添加现有项,导航到刚刚拷贝的 src 目录,选择除了 lua.c, luac.c 之外的所有 .c 文件。

lua 源码编译_第3张图片

右键生成即可编译出 lualib.lib。

编译 lua 解释器

在解决方案下建立一个控制台项目 lua, 建立项目时选择空项目、取消预编译头。

lua 源码编译_第4张图片

在 lua 项目上右键添加现有项,导航到刚刚拷贝的 src 目录,选择 lua.c, lua.h 文件。

lua 源码编译_第5张图片

在 lua 项目上右键生成依赖项,让 lua 项目依赖于 lualib 项目。
在 lua 项目上右键属性-->链接器,设置附加库目录为 lualib 的输出目录,设置附加依赖项为 lualib.lib。这样 lua 项目就可以使用 lualib.lib 了。


lua 源码编译_第6张图片

右键生成即可编译出 lua.exe

双击 lua.exe 可以在控制台里执行 lua 代码:


lua 源码编译_第7张图片

编译 luac 编译器

在解决方案下建立一个控制台项目 luac, 建立项目时选择空项目、取消预编译头。
之后的设置流程跟 lua 项目的一样。只是添加现有项的时候只需要添加一个 luac.c 文件即可。

建立测试项目

在解决方案下建立一个控制台项目 luatest。

在 luatest项目上右键生成依赖项,让 luatest 项目依赖于 lualib 项目。
在 luatest项目上右键属性-->链接器,设置附加库目录为 lualib 的输出目录,设置附加依赖项为 lualib.lib。这样 luatest 项目就可以使用 lualib.lib 了。
在 luatest项目上右键属性-->C++, 设置附加包含目录为 $(SolutionDir)src:

lua 源码编译_第8张图片

输入测试代码:

#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

你可能感兴趣的:(lua 源码编译)