转自:https://blog.csdn.net/qq_21031727/article/details/79494138
第一步下载Lua源码,可以从官网下载,是一个压缩包。
官网地址: http://www.lua.org/download.html。然后解压,比如F盘根目录。
第二步VS中新建一个项目:
我选择的是VC++,win32控制台应用程序。
取名MyLuaProj,位置在F盘根目录。
然后确定,下一步,应用程序设置中选择静态库,不勾选预编译头->完成。
此时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,大功告成。
- 最后放一张工程图运行结构和结果: