美文网首页
lua 源码编译

lua 源码编译

作者: 董哒哒 | 来源:发表于2016-03-16 18:42 被阅读519次

lua 源码编译

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

下载源码

源码下载在 这个页面

建立解决方案

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

编译 lua library

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

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

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

编译 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 <lua.h>
#include <lualib.h>
#include <lauxlib.h>
}

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 源码编译

      本文链接:https://www.haomeiwen.com/subject/vunqlttx.html