Создайте новую библиотеку C в lua

Я хочу знать, как я могу создать и использовать новую библиотеку C в lua 5.2.3. Я не могу использовать динамическую библиотеку (требуется, разделяемая библиотека,...) из-за встроенной системы. Я нашел ответ, но он для lua 5.0 (http://www.lua.org/pil/26.2.html), поэтому он несовместим. Если у кого-то есть идея?


person Subas    schedule 14.08.2014    source источник
comment
Просто напишите это так, как будто у вас есть общие объекты, но свяжите его с базой lua и предоставьте функцию настройки базовой системе в файле конфигурации lua.   -  person Deduplicator    schedule 14.08.2014


Ответы (2)


Отредактируйте linit.c и добавьте в него точку входа в библиотеку. Затем добавьте измененный linit.c в свой проект. Компоновщик будет использовать вашу копию вместо той, что находится в библиотеке Lua.

Это предполагает, что ваше приложение вызывает luaL_openlibs.

person lhf    schedule 14.08.2014
comment
У меня есть еще одна проблема. Я делаю скрипт lua, в котором вызываю одну из функций из моей новой библиотеки. Я думаю, мне нужно добавить ссылку между сценарием и исходным кодом lua, как требование. Но я понятия не имею, требуется, кажется, не ответ. - person Subas; 18.08.2014

В Lua 5.2 есть некоторые изменения API по сравнению с 5.1/5.0, поэтому вместо этого используйте ссылку для 5.2.3. . Вы также можете купить Programming in Lua 3rd edition для версии 5.2, в которой есть обновленные примеры.

person Advert    schedule 14.08.2014