在Visual Studio 2005中搭建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/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
再次编译成功。
运行程序时,发现只能当即运行,不能单步调试的运行。