怎么在Visual Studio 2005中搭建Lua呢?vs2005怎么搭建Lua環(huán)境?下面小編就給大家?guī)鞻isual Studio 2005中搭建Lua環(huán)境方法,一起學習下吧。
在Windows中安裝Lua環(huán)境
下載安裝程序: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編譯環(huán)境
安裝完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),該符號在函數(shù) _main 中被引用
1>a1.obj : error LNK2019: 無法解析的外部符號 "void __cdecl luaL_openlibs(struct lua_State
*)" (?luaL_openlibs@@YAXPAUlua_State@@@Z),該符號在函數(shù) _main 中被引用
1>a1.obj : error LNK2019: 無法解析的外部符號 "struct lua_State * __cdecl luaL_newstate
(void)" (?luaL_newstate@@YAPAUlua_State@@XZ),該符號在函數(shù) _main 中被引用
1>D:\111\111\Debug\111.exe : fatal error LNK1120: 3 個無法解析的外部命令
原因
代碼中的包含頭部分
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
用在了c++語法中
解決方法
添加擴展c調(diào)用申明
extern "C" {
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
}
再次編譯,提示錯誤如下:
1>a1.obj : error LNK2019: 無法解析的外部符號 _lua_close,該符號在函數(shù) _main 中被引用
1>a1.obj : error LNK2019: 無法解析的外部符號 _luaL_openlibs,該符號在函數(shù) _main 中被引用
1>a1.obj : error LNK2019: 無法解析的外部符號 _luaL_newstate,該符號在函數(shù) _main 中被引用
原因
lua靜態(tài)庫沒有鏈接
解決方法
Project->Code text properties->configuration properties->linker->input
Additional Dependencies 選項加入 lua5.1.lib lua51.lib
再次編譯成功。
運行程序時,發(fā)現(xiàn)只能立即運行,不能單步調(diào)試的運行。