Windows 环境编译 Lua5.3

本文讲述两种 lua 源码编译方式,命令行编译与 VS 编译,以当前最新的 lua-5.3.5 为例,开始编译前请下载并安装 VS2015。 下载 lua 源码 下载地址 命令行编译 解压 lua 源码 在根目录创建批处理文件 msvc_build.bat 打开文件,写入以下命令: @echo off md bin md lib md include cd src cl /c /nologo /W3 /O2 /Ob1 /Oi /Gs /MD /D_CRT_SECURE_NO_DEPRECATE l*.c ren lua.obj lua.o ren luac.obj luac.o lib /OUT:lua53.lib *.obj copy lua53.lib ..\lib\lua53.lib del *.o *.obj *.exp *.lib *.dll *.exe cl /c /nologo /W3 /O2 /Ob1 /Oi /Gs /MD /D_CRT_SECURE_NO_DEPRECATE /DLUA_BUILD_AS_DLL l*.c ren lua.obj lua.o ren luac.obj luac.o link /DLL /IMPLIB:lua53.lib /OUT:lua53.dll *.obj link /OUT:lua53.exe lua.o lua53.lib link /OUT:luac53.exe luac.o *.obj copy lua53.exp ..\bin\lua53.exp copy lua53.lib ..\bin\lua53.lib copy lua53.dll ..\bin\lua53.dll copy lua53.exe ..\bin\lua53.exe copy luac53.exe ..\bin\luac53.exe del *.o *.obj *.exp *.lib *.dll *.exe copy lauxlib.h ..\include\lauxlib.h copy lua.h ..\include\lua.h copy lua.hpp ..\include\lua.hpp copy luaconf.h ..\include\luaconf.h copy lualib.h ..\include\lualib.h cd ..\ 打开:开始 -> Visual Studio 2015 -> VS2015 开发人员命令提示,cd 到 lua 源码根目录 运行 msvc_build.bat,等待编译结果,结果如下: 使用 VS2015 编译 创建空项目 lua53,将 lua.c 添加进该项目。 在 解决方案'lua53' 下添加新的 Win 32 项目 luadll:在引导弹窗中选择下一步,应用程序类型选择 DLL,附加选项选择空项目,点击完成,将 lua.c 与 luac.c 以外的文件全部添加进该项目。 给 lua53 项目添加引用,方法如图所示: 给 lua53 项目附加添加包含目录为 luadll 头文件所在目录,方法如图所示: 将 luadll 输出文件名改为 lua53,方法如图所示: 给 luadll 添加预处理器定义 LUA_BUILD_AS_DLL ,方法如图所示: 在解决方案'lua53'下添加新的空项目 luac53,将 lua.c 以外的文件全部添加进该项目。 分别选择 lua53 luac53 ,右键生成项目。 生成结果如下: 遇到的问题及解决方案 luadll 编译时未生成 .lib 文件,解决方法:添加预处理器定义 LUA_BUILD_AS_DLL,原因见 luaconf.h: /* @@ LUA_API is a mark for all core API functions. @@ LUALIB_API is a mark for all auxiliary library functions. @@ LUAMOD_API is a mark for all standard library opening functions. ** CHANGE them if you need to define those functions in some special way. ** For instance, if you want to create one Windows DLL with the core and ** the libraries, you may want to use the following definition (define ** LUA_BUILD_AS_DLL to get it). */ #if defined(LUA_BUILD_AS_DLL) /* { */ #if defined(LUA_CORE) || defined(LUA_LIB) /* { */ #define LUA_API __declspec(dllexport) #else /* }{ */ #define LUA_API __declspec(dllimport) #endif /* } */ #else /* }{ */ #define LUA_API extern #endif /* } */ luac53 不能以动态链接库的方式进行编译,这是因为有一些核心函数并未进行导出。 本文项目工程链接 lua53 VS2015项目 请将项目中的绝对路径换成你自己的路径 参考链接 为Lua5.3编写C模块简单示例 分类: Lua 好文要顶 关注我 收藏该文 zhouzl 关注 - 0 粉丝 - 1 +加关注 0 0 « 上一篇:VS2015安装Unity插件后打开项目报错 posted @ 2018-08-27 23:47 zhouzl 阅读(68) 评论(0) 编辑 收藏 刷新评论刷新页面返回顶部 注册用户登录后才能发表评论,请 登录 或 注册,访问网站首页。 【推荐】超50万VC++源码: 大型组态工控、电力仿真CAD与GIS源码库! 【推荐】企业SaaS应用开发实战,快速构建企业运营/运维系统 【推荐】ActiveReports 报表控件,全面满足 .NET开发需求 qcloud0814 最新IT新闻: · 哔哩哔哩二季度净亏1060万美元 同比亏损幅度扩大 · EMS时隔五年重启IPO 上市地点或首选A股 · 中国正建造价值10亿超导计算机 港媒:或改变世界 · 35分钟充满3400毫安电池 OPPO超级闪充如何从0到1? · 丰田以720亿美元估值给Uber投资5亿美元 » 更多新闻... 华为CH0822 最新知识库文章: · 如何招到一个靠谱的程序员 · 一个故事看懂“区块链” · 被踢出去的用户 · 成为一个有目标的学习者 · 历史转折中的“杭派工程师” » 更多知识库文章... 公告 昵称:zhouzl 园龄:2年8个月 粉丝:1 关注:0 +加关注 < 2018年8月 > 日 一 二 三 四 五 六 29 30 31 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 8 搜索 常用链接 我的随笔 我的评论 我的参与 最新评论 我的标签 随笔分类 Java(1) Lua(1) Unity(1) 操作系统 汇编 文学 随笔档案 2018年8月 (2) 2018年7月 (1) 阅读排行榜 1. Windows 环境编译 Lua5.3(69) 2. Eclipse JNI环境搭建及使用(40) 3. VS2015安装Unity插件后打开项目报错https://www.cnblogs.com/zhouzl/p/9545514.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信