Lua运行时版本

Lua运行时版本,lua,c-api,Lua,C Api,我正在尝试使用ifunc属性为lua创建一个fat运行时库(在C中),为此,我需要在运行时为我的解析器函数从capi获取lua版本 我知道在全局表中的某个地方存储了_版本,但在知道代码在哪个版本中执行之前,我不能依赖使用任何lua函数 我试图记忆lua state以搜索版本,但没有任何运气,也许有一种更简单的方法你是用lua编写库的吗?如果是这样,为什么在评估时不能依赖\u版本\版本不是一个函数,它是一个保留变量。不,我正在编写一个C库,因此要访问它,我需要访问lua_状态中的全局变量,不幸的是

我正在尝试使用ifunc属性为lua创建一个fat运行时库(在C中),为此,我需要在运行时为我的解析器函数从capi获取lua版本

我知道在全局表中的某个地方存储了_版本,但在知道代码在哪个版本中执行之前,我不能依赖使用任何lua函数


我试图记忆lua state以搜索版本,但没有任何运气,也许有一种更简单的方法

你是用lua编写库的吗?如果是这样,为什么在评估时不能依赖
\u版本
<代码>\版本不是一个函数,它是一个保留变量。不,我正在编写一个C库,因此要访问它,我需要访问lua_状态中的全局变量,不幸的是,在5.1和5.3之间不相同,如果我没有弄错,我无法在不知道版本的情况下访问,由于链接的原因,您必须分别编译5.1和5.3版本的C库,或者您是通过dlopen动态链接到Lua?在这种情况下,您可以
dlsym
lua_版本
-是的,我将为每个单独编译的lua版本提供单独的库,然后我需要一个包装库,它将根据将使用它的lua解释器调用正确的版本(通过
需要“包装库”
)lua_版本正是我需要的,但lua5.1不存在:(您是在用Lua编写库吗?如果是这样,为什么在评估时不能依赖
\u VERSION
\u VERSION
不是一个函数,它是一个保留变量。不,我正在编写一个C库,因此要访问它,我需要访问Lua\u状态下的全局变量,不幸的是,5.1和5.3之间的全局变量与我的全局变量不同。)我无法在不知道版本的情况下访问如果我没有弄错,由于链接,您必须分别编译5.1和5.3版本的C库,或者您是否通过动态链接到Lua,即
dlopen
?在这种情况下,您可以
dlsym
Lua\u版本
-是的,我将为每个Lua版本提供单独的库单独编译,然后我需要一个包装器库,它将调用正确的版本,具体取决于将使用它的lua解释器(通过
要求“包装器库”
)lua_版本正是我需要的,但lua5.1不存在:(