如何编译srlua?

我今天写了一个程序,想知道如何将其变成可执行文件。我做了一些研究,发现可以使用srlua进行编译。我之前也问过这个问题,但是每次都在同一个指令上出错。有人告诉我要“编译srlua”。虽然我知道在编译srlua之后该怎么做,但是现在我不知道该如何编译它。

我看了一些YouTube教程,找到了一些,但是只有西班牙语的。我能够稍微跟上进度,直到他下载了一个预编译版本的srlua,但他所在的网页上已经没有下载链接了。

有人能够解释一下他们的意思吗?

点赞
用户3995239
用户3995239

你需要告诉 CMake 需要哪些 Lua 文件。

对我而言,Lua 包含文件在 /usr/include/luaX.X,其中 X.X 是你的版本号,例如5.3。Lua 库文件可能在 /usr/lib 中(文件名为 libluaX.X.so)。

如果位置与此不同,您可以尝试使用 find / | grep "lua.h"find / | grep "liblua"

一旦您定位了包含 lua.h 的文件夹以及适当的库文件,例如 liblua5.3.so,您需要将这些添加到 srlua 文件夹中的 CMakeLists.txt 文件中。例如,使用 lua5.3,您可以用这行代替:

include_directories(${LUA_INCLUDE_DIR})

使用这行:

include_directories(/usr/include/lua5.3)

对于库文件,您可以用这行代替:

target_link_libraries(glue ${LUA_LIBRARIES})
target_link_libraries(srlua ${LUA_LIBRARIES})

使用这行:

target_link_libraries(glue /usr/lib/liblua5.3.so)
target_link_libraries(srlua /usr/lib/liblua5.3.so)

之后,在 srlua 文件夹中运行 cmake ./,然后运行 makesrlua 应该已经被构建了。

注意:您可能还需要删除 find_package ( Lua REQUIRED ) 这一行,因为这是一个错误。删除后才能构建成功。

2017-12-04 22:58:23