Lua 5.1.2 + luabind 0.7 编译 luabind 0.7 时问题的解决



掌叔
2010-01-18 20:57:24

会出现类似错误:
c: empluabindsrc ef.cpp(95) : error C2062: type 'void' unexpected
c: empluabindsrc ef.cpp(96) : error C2143: syntax error : missing ';' before '{'
c: empluabindsrc ef.cpp(96) : error C2447: '{' : missing function header (old-style formal list?)
c: empluabindsrc ef.cpp(113) : error C2062: type 'int' unexpected
c: empluabindsrc ef.cpp(114) : error C2143: syntax error : missing ';' before '{'
c: empluabindsrc ef.cpp(114) : error C2447: '{' : missing function header (old-style formal list?)
c: empluabindsrc ef.cpp(153) : error C2589: '(' : illegal token on right side of '::'
c: empluabindsrc ef.cpp(153) : error C2059: syntax error : '::'
c: empluabindsrc ef.cpp(157) : error C2589: '(' : illegal token on right side of '::'

需要打开luaconf.h,找到322行:
#undef LUA_COMPAT_GETN
替换成:
#define LUA_COMPAT_GETN
即可解决。

另外需要注意的是,编译时字符集选择不要选择Unicode,选择多字符集貌似是不错的。