CoronaSDK中package.path的问题
2013-1-9 18:31:34
收藏:0
阅读:112
评论:2
我们想将第三方 Lua 模块(比如 foo)集成到我们的 CoronaSDK 应用程序中。
该模块的主要代码在 foo/init.lua 中,需要作为 require 'foo' 进行调用。
我们将该模块放入 corona/foo 中:
corona/foo$ ls
init.lua
在 corona/main.lua 中,我们有以下代码:
package.path = package.path .. ";"
.. package.path:gsub("?.lua", "?/init.lua")
在模拟器中,require 'foo' 是可以工作的。但是,在设备上它不起作用:
Lua Runtime Error: lua_pcall failed with status: 2, error message is:
module 'foo' not found:resource (foo.lua) does not exist in
archive
no field package.preload['foo']
no file '/var/mobile/Applications/0B609A43-54E8-40E5-9D44-F3C93CC4031E/Appname.app/foo.lua'
no file '/var/mobile/Applications/0B609A43-54E8-40E5-9D44-F3C93CC4031E/Appname.app/foo.lua'
no file '/var/mobile/Applications/0B609A43-54E8-40E5-9D44-F3C93CC4031E/Appname.app/foo/init.lua'
no file '/var/mobile/Applications/0B609A43-54E8-40E5-9D44-F3C93CC4031E/Appname.app/foo/init.lua'
no file './foo.so'
奇怪的是,require 'foo.init' 确实可以工作。
有什么提示吗?
点赞
用户830098
你的文件名是 foo.lua 还是 Foo.lua?
在模拟器中两种情况都能工作,但在设备上,大小写却很重要。
我曾经做了一个噩梦(我不知道为什么我的 SVN 客户端会更改我的某个文件的大小写……我花了一个多小时才发现出了什么问题,因为我的模块突然间在设备上无法找到了)。
2013-08-24 02:50:22
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
尝试这样做
设置
package.path,将原值与新的路径字符串拼接起来,并且使用gsub方法替换掉路径中的?.lua字符串:package.path = package.path .. ";" .. package.path:gsub("?.lua", "?.init.lua")在包中调用 Lua 文件时,应该使用以下路径结构:
而不应该使用以下路径结构:
希望这个解释可以帮到你。