Используя 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')
. Любой совет?