主要参考这篇文章,原文有几个错误顺便改正了。

在Windows下使用Visual Studio编译Lua5.3

写本文时Lua官方网站放出的新版本为5.3.1,然后我不知道为啥,神奇的国内不能访问Lua官网,但是作为程序员搞到源码应该不是难事。

VS2013中新建工程,设置如图

工程名Lua53,并且勾选Create directory for solution

应用程序设置静态库,其他选项全去掉

首先删除Lua源码文件夹中的Makefile文件,我们用不着这东西,至少我不用...

然后把除

lua.c

luac.c

lua.hpp

这三个文件外,其他所有文件复制到Lua53项目中,自己建个src目录,复制进去

然后把这些文件添加到Lua53项目中,Build

Build完后,在Lua53整个项目文件夹下Release文件夹下会生成Lua53.lib

========================================================================

然后来建立解释器工程,在解决方案上添加新工程

选择命令行工程,命名为Lua

设置如图,注意去掉其他项,并选中Empty project

然后从Lua源码中复制除

luac.c

之外所有文件复制到你的Lua工程文件源码里,还是自己建src目录,然后把源码拖进Lua工程中,要是讨厌重复自己能搞定就自己用,我是单独复制一份,反正本来也没多少代码

在Lua工程上右键,选择依赖项

添加Lua53为依赖项

之后Build,完成后在Lua53整个项目文件夹下Release文件夹下会生成Lua.exe

双击运行Lua.exe会出现Lua命令行窗口,写个print函数测试下

print("hello")  

没啥问题,继续

========================================================================

编译Lua编译器

解决方案上添加新命令行工程,名字为Luac

设置同上,去掉其他选项,勾选Empty project

然后从Lua源码中复制除

lua.c

之外所有文件到你的Luac工程里

一定要注意这几个文件,就差一个字母,别复制错了,简单来说就是Luac工程肯定带luac.c文件,不带lua.c文件

而之前的lua命令行解释器工程名字叫Lua,带lua.c文件,不带luac.c

同名工程肯定带同名的.c文件,而不带另一个文件,虽然这不是什么重点,还是提一下比较好

然后在Luac工程上右键,添加依赖Lua53

Build完后,在Lua53整个项目文件夹下Release文件夹下会生成Luac.exe

写个测试文件test.lua,内容如下

print("hello") 

打开命令提示符,进入到Luac.exe目录

D:\Program Files\VS2013Projects\Lua53\Release

运行

luac test.lua

之后可以看到生成一个luac.out文件,WinHex之类的软件打开

最后

Lua53.lib,这个是静态库,在C/C++工程中要用的,感觉好像用动态库的更多

Lua.exe,命令行解释器

Luac.exe,lua文本文件转二进制文件,看到像饥荒之类的游戏会把lua文本转成二进制调用,不过好像有反编译软件,总之先知道有这么个东西好了,自己用还得再加个密

Win7 64位 VS2013环境编译Lua5.3.1的更多相关文章

  1. Win7 64位 VS2013环境编译CGAL-4.7

    看到有人在QQ空间感叹编译CGAL配置折腾了一天时间,自己也想试试,虽然并不打算用,但感觉这库也挺有名的,想必日后用得着,于是着手试着编译. 首先是看一下官网的windows下配置说明 http:// ...

  2. Win7 64位 VS2013环境编译Squirrel 3.0.7

    Squirrel是一个类似Lua,但是更面向对象的脚本语言. 国内这个介绍很少,环境配置更是没有任何文章提到,花了点时间搞定了,备忘记录下过程. 首先是下载,写本文时Squirrel最新版本为3.0. ...

  3. Win7 64位 VS2013环境编译boost1_58_0

    备忘,发现好多不常用的东西不记笔记再想用要重新花时间找,所以试着开始记笔记,写入博客吧. 首先去官网下最新的版本 http://www.boost.org/ 写本文时boost最新版本为1_58_0, ...

  4. Win7 64位 VS2013环境cuda_7.5.18的一些坑

    thrust库的sort算法,在x86平台使用就崩溃,x64就没问题,搜了下好像是很早的版本,4开始就有这样的问题了,原因不明. http://stackoverflow.com/questions/ ...

  5. Win7 64位 VS2013环境使用cuda_7.5.18

    首先得吐槽下VS2015出来快一年了CUDA居然还不支持,没办法重装系统刚从2013升到2015,还得再装回一个2013用,只为学习CUDA... 然后安装的时候,如果你选择自定义组件安装,注意不要改 ...

  6. Win7 64位 VS2015环境编译NanoVG

    书接上回,Cairo编译好使用后,发现简单的每帧画100条随机线段就卡得不行,装了个gooreplacer( http://liujiacai.net/gooreplacer/ )上stackover ...

  7. Win7 64位 VS2015环境编译cegui-0.8.5

    首先是去官网下载源码与依赖库 http://cegui.org.uk/ 然后得提一下,编译DX11版本带Effects11框架的话会有问题,也就是默认情况编译有问题,这是因为VS2015升级后编译器对 ...

  8. Win7 64位 VS2015环境编译Libpng

    第3次编译Libpng依然想不起任何东西,为了不浪费第4次的时间... http://libmng.com/pub/png/libpng.html http://www.zlib.net/ 解压两个压 ...

  9. win7 64位 php环境开启curl服务Call to undefined function

    无法使用curl_init(),一般情况问题可能出在没有去加载php的扩展文件php_curl.dll(windows操作系统),但是检查了一下系统配置,发现,环境下已经将php.ini文件里 ;ex ...

随机推荐

  1. 重写form 表单的验证信息

    (function($) { var isformValidationPostBack=true; var isformValidation = false; $.extend({ formValid ...

  2. win7 双屏双任务栏

    扩展屏幕下都显示任务栏!!! 第一步:Dual Monitor Taskbar 下载 下载链接:链接: http://pan.baidu.com/s/1pKxYUFL 密码: gu5c 第二步:安装完 ...

  3. Android Studio使用百度地图示例BaiduMapsApiASDemo

    Android Studio使用百度地图示例BaiduMapsApiASDemo 用自己AVD下的debug.keystore替换掉项目中的debug.keystore 生成自己的签名 同样的方法生成 ...

  4. Oracle 更新表(另一张表)

    Update a set(a.province,a.city)= (select province,city from b where b.mobile=a.mobile)

  5. 转发(forward)和重定向(sendRedirect)

    一. RequestDispatche 是一个Web资源的包装器,可以用来把当前的Request传递给该资源,或者把新的资源包括到当前的相应中.详细来说:RequestDispatch对象从客户端获取 ...

  6. Python列表切成多个

    li = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18] #arr是被分割的list,n是每个chunk中含n元素. def chunks(arr, n) ...

  7. 关于display:flex

    遇到了一个bug 就是display:flex   遇到的bug原型就是,项目容器的diaplay:flex ,一行项目五个,到最后一行只剩两个的时候 是两端对齐的,如果再添加的话 也就是两端各一个子 ...

  8. [转] Oracle数据库备份与恢复 - 增量备份

    转:http://blog.csdn.net/pan_tian/article/details/46780929   RMAN一个强大的功能是支持增量备份,增量备份中心思想就是减少备份的数据量,我们不 ...

  9. JavaScript 对象的创建和对6种继承模式的理解和遐想

      JS中总共有六种继承模式,包括原型链.借用构造函数.组合继承.原型式继承寄生式继承和寄生组合式继承.为了便于理解记忆,我遐想了一个过程,对6中模式进行了简单的阐述. 很长的一个故事,姑且起个名字叫 ...

  10. swoole 使用 1

    在很长的一段时间里,我不太看好swoole,发现它的文档太少,社区也不够活跃等,但是最近在学习 Hprose时,发现swoole在rpc方面做得更加完善,于是决定看看. 在简单的使用swoole扩展后 ...