怎么在Visual Studio 2005中搭建Lua呢?vs2005怎么搭建Lua环境?下面小编就给大家带来Visual Studio 2005中搭建Lua环境方法,一起学习下吧。
相关下载: Lua脚本编辑器(LuaStudio) 9.2.7 官方正式版大小:9.4M
下载安装程序:http://www.lua.org/download.html,当前最新版是LuaForWindows_v5.1.4-45.exe
安装LuaForWindows_v5.1.4-45.exe
安装完成后测试Lua是否安装成功:开始-运行-lua,会弹出一个命令输入框,如下图,即安装成功
在Microsoft Visual Studio 2005中配置Lua编译环境
安装完LuaForWindows_v5.1.4-45.exe
tools->options->projects->vc++ directories
(1)include files选项添加lua include路径,我的是 D:/Program Files/Lua/Lua5.1/include
(2)library files 选项添加lua lib路径,我的是 D:/Program Files/Lua/Lua5.1/lib
注:如果怕出问题,可以把这些新加的选项都提到最前面
在Microsoft Visual Studio 2005中测试一个Lua程序
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
int main(int argc, char *argv[])
{
char line[BUFSIZ];
lua_State *L = luaL_newstate();
luaL_openlibs(L);
while (fgets(line, sizeof(line), stdin) != 0) printf("%s\n",line);
//luaL_dofile(L, "test.lua");
lua_close(L);
return 0;
}
编译时提示错误如下:
1>a1.obj : error LNK2019: 无法解析的外部符号 "void __cdecl lua_close(struct lua_State *)"
(?lua_close@@YAXPAUlua_State@@@Z),该符号在函数 _main 中被引用
1>a1.obj : error LNK2019: 无法解析的外部符号 "void __cdecl luaL_openlibs(struct lua_State
*)" (?luaL_openlibs@@YAXPAUlua_State@@@Z),该符号在函数 _main 中被引用
1>a1.obj : error LNK2019: 无法解析的外部符号 "struct lua_State * __cdecl luaL_newstate
(void)" (?luaL_newstate@@YAPAUlua_State@@XZ),该符号在函数 _main 中被引用
1>D:\111\111\Debug\111.exe : fatal error LNK1120: 3 个无法解析的外部命令
原因
代码中的包含头部分
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
用在了c++语法中
解决方法
添加扩展c调用申明
extern "C" {
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
}
再次编译,提示错误如下:
1>a1.obj : error LNK2019: 无法解析的外部符号 _lua_close,该符号在函数 _main 中被引用
1>a1.obj : error LNK2019: 无法解析的外部符号 _luaL_openlibs,该符号在函数 _main 中被引用
1>a1.obj : error LNK2019: 无法解析的外部符号 _luaL_newstate,该符号在函数 _main 中被引用
原因
lua静态库没有链接
解决方法
Project->Code text properties->configuration properties->linker->input
Additional Dependencies 选项加入 lua5.1.lib lua51.lib
再次编译成功。
运行程序时,发现只能立即运行,不能单步调试的运行。