vs2005怎么搭建Lua环境 Visual Studio 2005中搭建Lua环境方法

作者: 专题 2014/10/27 14:28:25


怎么在Visual Studio 2005中搭建Lua呢?vs2005怎么搭建Lua环境?下面小编就给大家带来Visual Studio 2005中搭建Lua环境方法,一起学习下吧。

相关下载: Lua脚本编辑器(LuaStudio) 9.2.7 官方正式版大小:9.4M

在Windows中安装Lua环境

下载安装程序: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

再次编译成功。

运行程序时,发现只能立即运行,不能单步调试的运行。


特别推荐

玩家留言 跟帖评论
查看更多评论