在visual studio 2013中编译Lua5.3.1
注:以下是基于 别人的教程或笔记来操作并按照自己的操作记录的纯文字版编译和hello lua过程。
原图文版链接: 原文链接
1.创建空的解决方案:
文件->新建->项目->其他项目类型->Visual Studio解决方案->空白解决方案
名称:lua53
位置:..
接下来在这个解决方案中创建3个项目:分别为Luz_lib、Lua和Luac
Lua和Luac项目中会生成最终我们需要的执行文件。Lua_lib会生成静态库文件,
Lua和Luac项目的编译需要这个库文件。所以我们需要先编译Lua_lib项目,生成需要的库文件。
2.创建lib静态库:
a.在lua53解决方案上点击右键->添加->新建项目->Visual C++ ->空项目
名称:Lua_lib
位置:...
b.在Lua_lib项目上点击右键->添加->现有项(或已存在项),
打开lua解压目录,找到src文件夹,选中全部文件,然后排除lua.c和
luac.c两个文件,将其他文件全部添加到项目中区。
(PS:Lua_lib项目中生成我们需要的库文件,而lua.c和luac.c分别是Lua项目
和Luac项目中要用到的。
c.编译Lua_lib项目,首先需要修改项目配置,在Lua_lib项目上点击右键->属性->配置属性->常规
->配置类型 选择静态库(.lib) ,然后再选中项目,点击主菜单栏中的测试->调试->所有测试 运行完之后在
解决方案文件夹下会多出一个Debug文件夹,里面会有一个Lua_lib.lib文件,这个就是Lua和Luac所需要的库文件。
3. 继续创建剩下的项目:Lua 、Luac
a.同创建lib项目一样,通过在lua53解决方案上点击右键来新建新的空项目Lua和Luac
b.把lua.c添加到Lua项目,Luac.c添加到Luac项目。
c.接下来对Lua和Luac项目执行相同操作,映入编译需要的Lua_lib.lib库文件:
右键Lua项目 -> 属性 -> 配置属性 -> 链接器 -> 输入 ->附加依赖项 选中值区域,点击下拉 -> 编辑 ->
输入Lua_lib.lib 确定。再在这个弹出窗口中 选择链接器-> 常规 -> 附加库目录 -> 下拉,编辑 -> 点击 文件夹按钮
-> 将Lua_lib.lib 库文件的目录添加进去,然后确定。(例如:D:\visual studio 2013\Projects\lua53\Debug)
4. 生成可执行文件:
编译解决方案(主菜单-测试-调试-所有测试)。成功之后在解决方案的debug目录下生成的Lua.exe和Luac.exe这两个
可执行文件就是我们需要的文件。
5.测试编译好的文件:
打开控制台将目录切换到lua53解决方案的debug文件夹下,在控制台上输入Lua.exe就能进入lua处理程序,进入时会
显示当前版本信息等。
然后输入print("hello lua"),回车,如果看到打印的 hello lua。即成功。
还可以在当前目录下新建一个测试脚本(.lua文件)。在该文件中输入 print("hello lua"); 保存。
然后在控制台出入Lua.exe Test.lua 应该可以看到 hello lua 输出。
Luac.exe类似一个编译器,会将.lua文件处理为.out的二进制文件。然后可以用Lua.exe执行它。
当在控制台输入Luac.exe Test.lua时会在当前目录下生成luac.out文件,然后执行Lua.exe luac.out会看到同样的
hello lua 输出。
在visual studio 2013中编译Lua5.3.1的更多相关文章
- 在Visual Studio 2013中编译libssh2项目
一. 下载需要的外部包,并解压,下面给出的链接如果无法访问,就google搜索下载一下: •下载openssl •下载zlib 二.修改libssh2项目配置: 1.C/C++->Gene ...
- 如何在Visual Studio 2013中使用Ribbon For WPF
1.首先需要 下载Ribbon For WPF.目前最新的版本是Microsoft Ribbon for WPF October 2010. 下载 链接: https://www.microsoft. ...
- 在 Visual Studio 2013 中创建 ASP.NET Web 项目(0):专题导航 [持续更新中]
写在前面的话 随着 Visual Studio 2013 的正式推出,ASP.NET 和 Visual Studio Web 开发工具 也发布了各自的最新版本. 新版本在构建 One ASP.NET ...
- 在 Visual Studio 2013 中创建 ASP.NET Web 项目(1):概述 - 创建 Web 应用程序项目
注:本文是“在 Visual Studio 2013 中创建 ASP.NET Web 项目”专题的一部分,详情参见 专题导航 . 预备知识 本专题适用于 Visual Studio 2013 及以上版 ...
- 在 Visual Studio 2013 中使用 Grunt, Bower 和 NPM
在 Visual Studio 2015 中提供了对于 Grunt 和 Gulp 的内置支持,在 Visual Studio 2013 中怎么办呢?微软将 2015 中的特性作为几个独立的扩展发布出来 ...
- 转载:在Visual Studio 2013中管理中国特色的社会主义Windows Azure
原文链接: http://www.pstips.net/get-azurechinacloud-settings.html 谷歌被豪迈地放弃了中国市场,微软仍旧在中国市场摸爬滚打,跪着挣钱.其中私人定 ...
- 在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移
在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移 最近发布的ASP.NET MVC 5 及Visual ...
- 在Visual Studio 2013 中使用C++单元测试
本文主要介绍在Visual Studio 2013中对代码进行单元测试的方法,包含了两方面的内容:对已有的Dll文件进行单元测试,以及对已有的源文件进行单元测试. 1. VS2013对DLL文件的单元 ...
- 在Visual Studio 2013中修改远程Git服务器的地址
在Visual Studio 2013中克隆了远程Git服务器的代码后,可以通过下图的方式修改Git服务器的地址:
随机推荐
- Python 属性描述符和属性的查找过程
属性描述符可以用来控制给属性赋值的时候的一些行为 import numbers class IntField: def __get__(self, instance, owner): return s ...
- Reachability from the Capital CodeForces - 999E (强连通)
There are nn cities and mm roads in Berland. Each road connects a pair of cities. The roads in Berla ...
- System.Diagnostics.Process 测试案例
1.System.Diagnostics.Process 执行exe文件 创建项目,编译成功后,然后把要运行的exe文件拷贝到该项目的运行工作目录下即可,代码如下: using System; usi ...
- 转:Flutter动画一
1. 动画介绍 动画对于App来说,非常的重要.很多App,正是因为有了动画,所以才会觉得炫酷.移动端的动画库有非常的多,例如iOS上的Pop.web端的animate.css.Android端的An ...
- Python——爬虫——数据提取
一.XML数据提取 (1)定义:XML指可扩展标记语言.标记语言,标签需要我们自行定义 (2)设计宗旨:是传输数据,而非显示数据,具有自我描述性 (3)节点关系: 父:每个元素及属性都有一个父. ...
- springdata 使用plql更新时候注意点 ?2 表示从方法中获取第二个形参的值 ?1表示从方法中获取第一个值
1.query表示的是查询 需要在操作update的方法上再次添加一个注解modifying 2.plql不是springdatajpa自带的sql功能自带的功能 自动有事务: 所以需要我们手动在se ...
- Virtual Box虚拟机安装Ubuntu16.04以及整理的一些基本操作
事先声明,参考自:https://www.cnblogs.com/wyt007/p/9856290.html 撰写此文,纯属是为了便利以后换电脑重装. 转载请注明地址:https://www.cnbl ...
- [HDU5969] 最大的位或
题目类型:位运算 传送门:>Here< 题意:给出\(l\)和\(r\),求最大的\(x|y\),其中\(x,y\)在\([l,r]\)范围内 解题思路 首先让我想到了前面那题\(Bits ...
- 【dp】求最长上升子序列
题目描述 给定一个序列,初始为空.现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置.我们想知道此时最长上升子序列长度是多少? 输入 第一行一个整数N,表示我们要将1到N插入序列中 ...
- 锁(1):spin_lock & mutex_lock的区别? .
为什么需要内核锁? 多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是可以访问所有内核数据的,因此要对共享数据进行保护,即互斥处理 有哪些内核锁机制? (1)原子操作 atomic ...