Загрузка модуля C в Lua

Я пытаюсь загрузить пример lproc программа (описанный при Программировании Lua, Главы 30) в Lua и портить так или иначе. Я следую за этим - http://www.lua.org/pil/26.2.html для получения моего c модуля в lua. Следующее является шагами, которые я сделал:

  1. У меня есть lproc.h и lproc.c (содержащий точно функции, размеченные в Главе 30 книги). Я компилирую lproc.c как---gcc-c lproc.c-DLUA-USERCONFIG = \"lproc.h \"

  2. Я сделал библиотеку из lproc.o, названного тем же.

  3. И затем скомпилированный lua.c, как проинструктировано. Мои заголовочные файлы содержат макро-LUA_EXTRALIBS и объявления метода.

  4. Перешел к интерпретатору Lua, и он дал следующие ошибки:

> require "lproc"
stdin:1: module 'lproc' not found:
    no field package.preload['lproc']
    no file './lproc.lua'
    no file '/opt/local/share/lua/5.1/lproc.lua'
    no file '/opt/local/share/lua/5.1/lproc/init.lua'
    no file '/opt/local/lib/lua/5.1/lproc.lua'
    no file '/opt/local/lib/lua/5.1/lproc/init.lua'
    no file './lproc.so'
    no file '/opt/local/lib/lua/5.1/lproc.so'
    no file '/opt/local/lib/lua/5.1/loadall.so'
stack traceback:
    [C]: in function 'require'
    stdin:1: in main chunk
    [C]: ?

Кажется, что модуль не стал зарегистрированным, что я должен буду сделать от Lua? Время коротко, и я делаю что-то страшно неправильно, любое направление приветствовалось бы.

Спасибо,
Саянский

5
задан RBerteig 19 July 2010 в 18:07
поделиться

1 ответ

Самый простой способ - создать разделяемую библиотеку и динамически загрузить модуль C. Таким образом, вам не придется перестраивать интерпретатор Lua. Есть несколько примеров в http://www.tecgraf.puc-rio.br/~lhf/ftp/lua/ и пояснения в http: //www.tecgraf.puc-rio. br / ~ lhf / ftp / lua / install.html и http://lua-users.org/wiki/BuildingModules

7
ответ дан 14 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: