2013-11-14 3 views
2

Я скачал this Модуль Lua и установил его с make. Однако, когда я пытаюсь использовать его в моем коде, я получаю следующее сообщение об ошибке:Как включить модуль Lua в сборку

VirtualBox:~/Downloads$ lua socket_test.lua 
lua: socket_test.lua:1: module 'nixio.util' not found: 
    no field package.preload['nixio.util'] 
    no file './nixio/util.lua' 
    no file '/usr/local/share/lua/5.1/nixio/util.lua' 
    no file '/usr/local/share/lua/5.1/nixio/util/init.lua' 
    no file '/usr/local/lib/lua/5.1/nixio/util.lua' 
    no file '/usr/local/lib/lua/5.1/nixio/util/init.lua' 
    no file '/usr/share/lua/5.1/nixio/util.lua' 
    no file '/usr/share/lua/5.1/nixio/util/init.lua' 
    no file './nixio/util.so' 
    no file '/usr/local/lib/lua/5.1/nixio/util.so' 
    no file '/usr/lib/i386-linux-gnu/lua/5.1/nixio/util.so' 
    no file '/usr/lib/lua/5.1/nixio/util.so' 
    no file '/usr/local/lib/lua/5.1/loadall.so' 
    no file './nixio.so' 
    no file '/usr/local/lib/lua/5.1/nixio.so' 
    no file '/usr/lib/i386-linux-gnu/lua/5.1/nixio.so' 
    no file '/usr/lib/lua/5.1/nixio.so' 
    no file '/usr/local/lib/lua/5.1/loadall.so' 
stack traceback: 
    [C]: in function 'require' 
    socket_test.lua:1: in main chunk 
    [C]: ? 

И первая строка моего кода:

local nixio = require "nixio", require "nixio.util" 

Любая помощь будет оценен по достоинству!

+0

Где находится 'nixio'? – lhf

+0

Я думаю, что он просто скомпилировал все исходные файлы в каталоге, который он пришел в – TomSelleck

+0

, фактически создал каталог с именем 'dist/usr/local/share/lua/5.1/nixio' с файлами' fs.lua' и 'util. lua', и он также создал '/ dist/usr/local/lib/lua/5.1/nixio.so' – TomSelleck

ответ

4

Я вижу следующие варианты:

  1. Попробуйте make install и надеемся, что это работает. Возможно, установите некоторую переменную, например PREFIX.

  2. Вручную переместите dist/usr/local/share/lua/5.1/nixio в /usr/local/share/lua/5.1/nixio и dist/usr/local/lib/lua/5.1/nixio.so к /usr/local/lib/lua/5.1/nixio.so.

  3. Добавить dist пути к окружающей среде: LUA_CPATH='dist/usr/local/lib/lua/5.1/?.so;;' и LUA_PATH='dist/usr/local/share/lua/5.1/?.lua;;'.

  4. Добавить dist Пути в Луа: package.cpath='dist/usr/local/lib/lua/5.1/?.so;'..package.cpath и package.path='dist/usr/local/share/lua/5.1/?.lua;'..package.path.

+0

Получил это! Когда я пытался сделать 'make install', мне пришлось вручную создавать каталоги'/usr/local/share/lua/5.1' и '/ usr/local/lib/lua/5.1'. Затем я вызвал 'sudo apt-get remove lua5.2', который, похоже, удалил мой lua5.2, но оставил установку 5.1, которая, похоже, сработала. – TomSelleck

+0

@ ihf, Том, я сделал все упомянутые шаги, но у меня есть сомнение в действии 4, в котором lua-файл должен выполнить шаг 4? – Jerry

Смежные вопросы