最近有点忙,更新较慢,更新也完全是随着我的学习进度来更新的(啥比较急,先更新哪一部分,全都不急就更新架构设计和EffectiveC++)
有师弟师妹问题,luabridge怎么配置,他们说网上没有这么简单的教程。特此开一篇。。。
拷贝文件:本文默认拷贝到.sln文件的下层目录
,如下图所示:
1. 源码下载
lua版本:lua.5.4.4
luabridge:luabridge1.0.2(更新很快,这个版本只有三个头文件,对新手很友好)
去各自的官网上下载即可;后面我会上传整个项目。包含以上两个源码;
2. VS2010新建空白工程
工具使用VS2010,笔记本好久不用上面只有这个版本的。其他版本类似;
新建VC++,win32控制台项目,取消预编译头,选择空白项目
;
添加lua源码中的所有头文件和.c文件;
然后lua.c和luac.c要删除一个,不然会报错。这两个文件中各自有一个main函数。
简单介绍一下luac.c是“编译器”;luac.c生成的文件会将.lua文件代码预编译成.out文件;
所以在这里我们使用lua.c.将luac.c删除
直接点击生成即可;会在目录下生成可执行文件。这个可执行文件就是lua语言所用的的lua.exe。
可以写一个新建一个main.lua文件,写一个helloworld程序
print "hello world"
然后用cmd运行:
这样就说明没问题。
3. 生成静态库
右键项目-属性-常规-配置类型:选择静态库
再点击启动生成会在对应目录生成.lib文件;,(在这里可以改为release)
4. 配置luabridge
新建一个空白工程;
将lua源码头文件全部拷贝,将刚刚生成lib也拷贝过来
将luabridge文件夹全部拷贝过来;
VC++目录 设置一下包含目录
,包含lua源码的头文件;
VC++目录 设置一下引用目录
链接器-输入
,设置一下lib
5. 验证
新建cpp文件,输入以下代码
#include <iostream>
//#pragma comment(lib,"lua544.lib")
extern "C"
{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
#include "LuaBridge/LuaBridge.h"
using namespace luabridge;
void SayHello()
{
std::cout << "Hello, World!" << std::endl;
}
int main(int argc, char **argv)
{
lua_State* L = luaL_newstate();
luaL_openlibs(L);
luabridge::getGlobalNamespace(L)
.addFunction("sayHello", SayHello);
luaL_dostring(L, "sayHello()");
lua_close(L);
return 0;
}
编译生成exe文件(如果报错,检查上面配置是否配置好);
会输出
“hello world”