【发布时间】:2015-12-06 01:14:23
【问题描述】:
我可以在 Linux 中使用 LuaJit 为两个不同的库共享相同的“命名空间”
A = ffi.load(ffi.os == "Windows" and "opengl32" or "GLESv2")
B = ffi.load(ffi.os == "Windows" and "glfw3" or "glfw")
C = B,A
这样做允许我从 C 变量调用任一库中的函数
但是在最后一个库 A 中的 windows 函数中找不到(我正在使用来自 https://luapower.com/ 的 LuaJit 二进制文件)
我猜两个平台的行为应该相同(如果不能在两个平台上完成(这很奇怪),那么两个平台都不应该允许它?)
这是一个错误还是有更强大的方法来做我正在尝试的事情?
【问题讨论】:
-
我认为 Linux 上的 glfw 必须为我动态链接函数(来自 GLES)。 C = B --,A 也有效,即我认为 C 只包含第一个库中的函数....(所以我想做的事情在这两个平台上都不起作用!)
-
在 linux 中设法使用了 ffi.C 甚至 C=ffi.C(在使用 global=true 加载后),但 windows 似乎也不喜欢......?
-
C = B, A没有意义……或者至少它将B分配给C并丢弃A。