在Visual Studio 2005中搭建Lua环境

在Visual Studio 2005中搭建Lua环境
 
在Windows中安装Lua环境
  1. 下载安装程序:http://www.lua.org/download.html,当前最新版是LuaForWindows_v5.1.4-45.exe
  2. 安装LuaForWindows_v5.1.4-45.exe
  3. 安装完成后测试Lua是否安装成功:开始-运行-lua,会弹出一个命令输入框,如下图,即安装成功
 
 
在Microsoft Visual Studio 2005中配置Lua编译环境
  1. 安装完LuaForWindows_v5.1.4-45.exe
  2. 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
 
再次编译成功。
 
运行程序时,发现只能立即运行,不能单步调试的运行。
 
 

 

你可能感兴趣的:(环境,lua,windows平台)