как проверить версию liblua во время компиляции? - PullRequest
1 голос
/ 18 марта 2019

работает над кодом, который должен компилироваться как с 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?

1 Ответ

8 голосов
/ 18 марта 2019

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
...