使用 Luarocks,我遵循了有关创建岩石的教程。但是,我很难创建包含多个文件的包。当我的包分布在多个文件中时,我必须与教程做哪些不同的事情?
示例 - 一个文件
假设我有以下文件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')
声明。有什么建议吗?