VS下LUA编程环境搭建

VSLUA编程环境搭建

 

vs2003[en]为例        

 

安装完LuaForWindows_v5.1.4

 

http://luaforge.net/frs/?group_id=377

 

打开vs

 

tools->options->projects->vc++ directories

 

executable files 选项添加lua安装以后的路径,我的是 E:\work\lua\Lua5.1

 

include files选项添加lua include路径,我的是 E:\work\lua\Lua5.1\include

 

library files 选项添加lua lib路径,我的是 E:\work\lua\Lua5.1\lib

 

[如果怕出问题,可以把这些新加的选项都提到最前面]

 

ok

 

其他一些问题及解决办法

 

1.编译报错一

 

oid __cdecl lua_close(struct lua_State *)" (?lua_close@@YAXPAUlua_State@@@Z) referenced in function _main

 

unresolved external symbol "void __cdecl lua_settop(struct lua_State *,int)" (?lua_settop@@YAXPAUlua_State@@H@Z) referenced in function _main

 

......

 

原因

 

代码中的包含头部分

 

#include <lua.h> 

#include <lauxlib.h> 

#include <lualib.h> 

 

用在了c++语法中

 

解决方法

 

添加扩展c调用申明

 

extern "C" { 

#include <lua.h> 

#include <lauxlib.h> 

#include <lualib.h> 

 

2.编译报错二

 

unresolved external symbol _lua_close referenced in function _main

unresolved external symbol _lua_settop referenced in function _main

 

......

 

原因

 

lua静态库没有链接

 

解决方法

 

Project->Code text properties->configuration properties->linker->input

 

Additional Dependencies 选项加入 lua5.1.lib lua51.lib

 

3.编译成功后命令行提示unprotected error in call to lua api <no calling environment>

 

原因及解决方法

 

 lua5.0以前初始化的都会用到如下函数

 

 lua_State *L = lua_open();

 

 luaopen_base(L);

        luaopen_table(L);

        luaopen_io(L);

        luaopen_string(L);

        luaopen_math(L);

 

5.1以后改为

 

lua_State *L = lua_open();

 

luaL_openlibs(L)

 

即可

posted @ 2015-12-08 11:36  hxb316  阅读(388)  评论(0编辑  收藏  举报