在处理一些应该针对liblua5.0和liblua5.1进行编译的代码时,例如,我需要调用5.0中的lua_openlibs(luaState);
和5.1中的luaL_openlibs(luaState);
(lua
vsluaL
),如何在编译时检查我是针对5.0还是5.1进行编译?
libcurl有一个整洁的预处理器,称为CURL_AT_LEAST_VERSION
,在libcurl中我可以编写
#if CURL_AT_LEAST_VERSION(5, 1, 0)
// lua >=5.1-specific code
luaL_openlibs(luaState);
#else
// lua < 5.1-specific code
lua_openlibs(luaState);
#endif
我怎样才能达到与利布卢亚相似的效果呢?
最佳答案
Lua 5.1及更高版本将宏LUA_VERSION_NUM
定义为版本号的十进制表示,例如lua5.1的501
您可以将其与宏进行比较,例如。
#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 510
lua 5.1 code
#else
older version code
#endif