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

问题描述 投票:1回答:1

处理一些应该针对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实现类似的东西?

c lua c-preprocessor
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.