在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/includehtml

(2)library files 選項添加lua lib路徑,個人是 D:/Program Files/Lua/Lua5.1/libc++

注:若是怕出問題,能夠把這些新加的選項都提到最前面
 
在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
 
再次編譯成功。
 
運行程序時,發現只能當即運行,不能單步調試的運行。
相關文章
相關標籤/搜索