【发布时间】:2016-04-30 05:57:23
【问题描述】:
使用 Luarocks,我遵循了 Creating a rock 上的教程。但是,我很难创建包含多个文件的包。当我的包分布在多个文件中时,与教程有什么不同?
示例 - 一个文件
假设我有以下文件testrock.lua:
module('testrock')
function add(a, b)
return a+b
end
在testrock-scm-1.rockspec
package = "testrock"
version = "scm-1"
source = ...
description = ...
dependencies = ...
build = {
type = "builtin",
modules = {
testrock = "testrock.lua"
}
}
然后我运行luarocks make,它安装testrock 就好了(我可以转到另一个目录并运行require 'testrock')。
示例 - 两个文件
但是,假设我想添加另一个文件foo.lua:
function testrock.sub(a, b)
return a - b
end
我在testrock.lua的末尾添加以下内容:
require('foo')
然后运行luarocks make。 make 有效,但是当我转到另一个目录并运行 `require 'testrock` 时,我收到以下错误:
/home/<username>/torch/install/share/lua/5.1/testrock.lua:7: attempt to call global 'require' (a nil value)
所以它抱怨require('foo') 声明。有什么建议吗?
【问题讨论】: