代码之家  ›  专栏  ›  技术社区  ›  hanshenrik

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

  •  0
  • hanshenrik  · 技术社区  · 6 年前

    处理一些应该同时针对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

    #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 回复  |  直到 6 年前
        1
  •  8
  •   gone    6 年前

    lua5.1及更高版本定义宏 LUA_VERSION_NUM 版本号的十进制表示,例如。 501

    #if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 510
    lua 5.1 code
    #else
    older version code
    #endif