如何在编译时检查liblua版本?

时间:2019-03-18 18:17:49

标签: c lua c-preprocessor

正在处理应针对liblua5.0和liblua5.1进行编译的某些代码,例如,我需要在5.0中调用lua_openlibs(luaState);,在5.1中调用luaL_openlibs(luaState);lua与{{ 1}}),如何在编译时检查是否针对5.0或5.1进行编译?

libcurl为此有一个简洁的预处理器luaL,我可以在libcurl中编写

CURL_AT_LEAST_VERSION

我如何使用liblua实现类似的目的?

1 个答案:

答案 0 :(得分:8)

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