正在处理一些应该针对 liblua5.0 和 liblua5.1 编译的代码,例如我需要调用 lua_openlibs(luaState);
在 5.0 和 luaL_openlibs(luaState);
中在 5.1(lua
与 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
关于c - 如何在编译时检查 liblua 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55227718/