怎么在Visual Studio 2005中搭建Lua呢?vs2005怎么搭建Lua環(huán)境?下面小編就給大家?guī)?lái)Visual Studio 2005中搭建Lua環(huán)境方法,一起學(xué)習(xí)下吧。
在Windows中安裝Lua環(huán)境
下載安裝程序:http://www.lua.org/download.html,當(dāng)前最新版是LuaForWindows_v5.1.4-45.exe
安裝LuaForWindows_v5.1.4-45.exe
安裝完成后測(cè)試Lua是否安裝成功:開(kāi)始-運(yùn)行-lua,會(huì)彈出一個(gè)命令輸入框,如下圖,即安裝成功
在Microsoft Visual Studio 2005中配置Lua編譯環(huán)境
安裝完LuaForWindows_v5.1.4-45.exe
tools->options->projects->vc++ directories
(1)include files選項(xiàng)添加lua include路徑,我的是 D:/Program Files/Lua/Lua5.1/include
(2)library files 選項(xiàng)添加lua lib路徑,我的是 D:/Program Files/Lua/Lua5.1/lib
注:如果怕出問(wèn)題,可以把這些新加的選項(xiàng)都提到最前面
在Microsoft Visual Studio 2005中測(cè)試一個(gè)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;
}
編譯時(shí)提示錯(cuò)誤如下:
1>a1.obj : error LNK2019: 無(wú)法解析的外部符號(hào) "void __cdecl lua_close(struct lua_State *)"
(?lua_close@@YAXPAUlua_State@@@Z),該符號(hào)在函數(shù) _main 中被引用
1>a1.obj : error LNK2019: 無(wú)法解析的外部符號(hào) "void __cdecl luaL_openlibs(struct lua_State
*)" (?luaL_openlibs@@YAXPAUlua_State@@@Z),該符號(hào)在函數(shù) _main 中被引用
1>a1.obj : error LNK2019: 無(wú)法解析的外部符號(hào) "struct lua_State * __cdecl luaL_newstate
(void)" (?luaL_newstate@@YAPAUlua_State@@XZ),該符號(hào)在函數(shù) _main 中被引用
1>D:\111\111\Debug\111.exe : fatal error LNK1120: 3 個(gè)無(wú)法解析的外部命令
原因
代碼中的包含頭部分
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
用在了c++語(yǔ)法中
解決方法
添加擴(kuò)展c調(diào)用申明
extern "C" {
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
}
再次編譯,提示錯(cuò)誤如下:
1>a1.obj : error LNK2019: 無(wú)法解析的外部符號(hào) _lua_close,該符號(hào)在函數(shù) _main 中被引用
1>a1.obj : error LNK2019: 無(wú)法解析的外部符號(hào) _luaL_openlibs,該符號(hào)在函數(shù) _main 中被引用
1>a1.obj : error LNK2019: 無(wú)法解析的外部符號(hào) _luaL_newstate,該符號(hào)在函數(shù) _main 中被引用
原因
lua靜態(tài)庫(kù)沒(méi)有鏈接
解決方法
Project->Code text properties->configuration properties->linker->input
Additional Dependencies 選項(xiàng)加入 lua5.1.lib lua51.lib
再次編譯成功。
運(yùn)行程序時(shí),發(fā)現(xiàn)只能立即運(yùn)行,不能單步調(diào)試的運(yùn)行。