如何在编译时检查 liblua 版本?
how to check liblua version at compile time?
正在编写一些应该同时针对 liblua5.0 和 liblua5.1 进行编译的代码,例如我需要在 5.0 中调用 lua_openlibs(luaState);
并在 5.1 中调用 luaL_openlibs(luaState);
(lua
vs luaL
),我如何在编译时检查我是针对 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
如何使用 liblua 实现类似的功能?
Lua 5.1 及更高版本将宏 LUA_VERSION_NUM
定义为版本号的十进制表示形式,例如501
对于 Lua 5.1。您可以使用宏对其进行比较,例如
#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 510
lua 5.1 code
#else
older version code
#endif
正在编写一些应该同时针对 liblua5.0 和 liblua5.1 进行编译的代码,例如我需要在 5.0 中调用 lua_openlibs(luaState);
并在 5.1 中调用 luaL_openlibs(luaState);
(lua
vs luaL
),我如何在编译时检查我是针对 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
如何使用 liblua 实现类似的功能?
Lua 5.1 及更高版本将宏 LUA_VERSION_NUM
定义为版本号的十进制表示形式,例如501
对于 Lua 5.1。您可以使用宏对其进行比较,例如
#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 510
lua 5.1 code
#else
older version code
#endif