VS2015中编译lua.lib并运行lua程序,版本lua5.3.4

转自:https://blog.csdn.net/qq_21031727/article/details/79494138

第一步下载Lua源码,可以从官网下载,是一个压缩包。 

官网地址: http://www.lua.org/download.html。 
源码如图所示 
然后解压,比如F盘根目录。

第二步VS中新建一个项目: 
我选择的是VC++,win32控制台应用程序。 
取名MyLuaProj,位置在F盘根目录。 
VS新建项目
然后确定,下一步,应用程序设置中选择静态库,不勾选预编译头->完成。 
此时VS里会出现下图所示的项目了。 
这里写图片描述

第三步,导入Lua源码,生成.lib文件,.lib文件就是静态数据链接库,就可以给别的程序引用了,具体过程如下:

  • 导入步骤一图里的src文件夹里的所有.h文件到头文件里。如果有.hpp文件,可以不用导入。
  • 导入步骤一图里的src文件夹里的所有.c文件到源文件里。
  • 可以选择debug或release生成,测试的话用debug模式就行了,然后编译结束就会在F:\myLuaProj里面多出一个Debug或者Release文件夹,里面有个myLuaProj.lib,还可能会有.PDB文件,可以删了这个PDB文件没啥用。这个myLuaProj.lib可以随便改名,也可以随便拷贝到其他目录。
  • 如图所示,在原来的MyLuaProj工程下,或者随便一个工程下,新建另一个VC++项目win32控制台,我这里命名myLuaTest,取消预编译头和选择空项目,安全检查无所谓勾选。 
     
     
    此时工程下会多出一个如图所示的myLuaTest项目了。 
    这里写图片描述 
    5.我们要准备跑Lua代码,Lua体积很小,往往使用静态链接即.lib嵌入到程序内部,在发布应用时不需要附带任何的运行时支持,所以我们要用C来创建和初始化Lua的虚拟机。斜线的不用管,只是原理。所以熟悉C和C++的VS配置的人应该知道怎么做了:
  • 在源文件里右击新建一个.c或者.cpp的文件,取名main.cpp吧。等下作为exe程序入口。另外右击myLuaTest项目,设为启动项目。
  • 导入步骤一我们解压的src文件里的所有.h文件到头文件里如图所示,注意这里可以导入那个lua.hpp文件,其实只是等于一个接口,也不是必须导入的。
  • 然后右击myLuaTest项目,选择最底下属性,如果我们在源文件里没有提前新建那个.c或者.cpp文件的话,这里会少一个如图所示的选项,那么还是去创一个main.cpp吧。这里写图片描述
  • 此时点击上图红框框起来的C/C++选项,按照下图1234的步骤,完成步骤一里的src文件夹的包含。我的目录是..\Debug,你的可能是Release等。
  • 这里写图片描述
    这里写图片描述
  • 最后还得附加依赖项,也就是那个可以随便命名的myLuaProj.lib了,不过这里名字不能再变了,可以取名lua5_3_4.lib等更好理解,不然你随便改一个名字,不附加进来,系统不知道哪个lib才是。还是在上一歩的链接器选项里->输入->附加依赖项,把你上一步.lib库目录里的lua5_3_4.lib给附加进来。如图所示。这里写图片描述
  • 然后打开windows资源管理器在F:\myLuaProj\myLuaTest目录下,新建一个MyLuaCode文件夹,里面创建一个main.lua文件,文件内容:
  • print("hello lua")
  • 再在VS工程的main.cpp里使用main.lua文件就可以了!如图所示:
#include <lua.hpp>
#include <windows.h> 
int main() {

    lua_State*l = luaL_newstate();
    luaL_openlibs(l);
    luaL_dofile(l, "myLuaCode/main.lua");
    lua_close(l);
    system("pause"); //为了保证在windows资源管理器中打开main.exe不闪退。需要windows.h。

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

注意lua.hpp这个头文件如果你没有导入的话,可以直接用以下代码替换#include<lua.hpp>。

//当你打开lua.hpp时,会发现里面的内容就是这5行代码。
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 这里写图片描述
  • 运行,会成功显示hello lua,大功告成。
  • 最后放一张工程图运行结构和结果:
  • 这里写图片描述

猜你喜欢

转载自blog.csdn.net/menghuangxiao/article/details/80459684
LUA