【问题标题】:Requiring a shared object (.so) file in Love2D with Lua使用 Lua 在 Love2D 中需要一个共享对象 (.so) 文件
【发布时间】:2021-10-29 21:57:36
【问题描述】:

最近,我想做一个Love2D 游戏并在Steam 上发布。我环顾互联网,发现luasteam。 luasteam 的作用是为 Steam API 创建 lua 绑定。 Luasteam,至少对于 Linux,是随共享对象 (.so) 文件一起分发的。当我尝试要求它时(它与我的main.lua 在同一个文件夹中),使用Steam = require('luasteam') 然后运行love <FolderName>,它不起作用。我收到一条错误消息。

问题是,当我在项目文件夹中运行 love ../<FolderName> 时,它可以工作。

现在您可能会问,“为什么不一直这样做?”。这是因为像我上面那样运行它只是一个快速修复。当您将游戏设为 .love 文件时,它会按照我之前向您展示的方式运行并显示与之前相同的错误:

我尝试更改package.cpath,但无济于事。有什么办法可以解决这个问题?

【问题讨论】:

    标签: lua require love2d


    【解决方案1】:

    您没有指定如何您尝试更改 package.cpath,因此很难说出了什么问题,但您需要做的是以允许的方式进行设置luasteam.so 相对于 Lua 解释器(嵌入在 Love 可执行文件中)的启动位置。

    love ../<FolderName> 有效,因为您可能将luasteam.so 放入您的项目文件夹中,所以它被发现为./luasteam.so。如果您想让love <FolderName> 工作,您需要将<FolderName>/?.so 包含在您的package.cpath 中。在require "luasteam" 之前尝试添加以下行:

    package.cpath = package.cpath..";<FolderName>/?.so"
    

    【讨论】:

      猜你喜欢
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 2020-05-05
      • 2019-04-23
      相关资源
      最近更新 更多