- python_server.py: скрипт Python, открывающий сокет в Mac OS
- lua_client.lua: скрипт Lua, который отправляет и получает сообщения через один и тот же сокет.
- MAME: эмулятор мультиаркадных автоматов. Эмулятор, предоставляющий интерпретатор Lua для взаимодействия с эмулируемыми играми.
Lua версии 5.4.4
MAME Lua версии 5.4.4
MAME версии 0.270
Я собрал MAME и Lua с помощью команды строку с помощью Make.
Я использую CFLAG:
Код: Выделить всё
CFLAGS="-DLUA_USE_MACOSX"
При запуске под Mac OS python_server и lua_client успешно взаимодействует через открытый сокет. Я проверяю версию Lua во время выполнения.
Когда lua_client запускается под интерпретатором Lua MAME, возникает эта ошибка выполнения:
Код: Выделить всё
mame 0.270
Copyright (C) Nicola Salmoria and the MAME team
Lua 5.4
Copyright (C) Lua.org, PUC-Rio
[MAME]> dofile("/Users/user_name/proj/ast/luaclient.lua")
Lua 5.4.4 Copyright (C) 1994-2022 Lua.org, PUC-Rio
error: error loading module 'socket.core' from file '/usr/local/lib/lua/5.4/socket/core.so':
dlopen(/usr/local/lib/lua/5.4/socket/core.so, 0x0006): symbol not found in flat namespace '_luaL_addlstring'
Вот файлы Makefile для MacOS Интерпретатор Lua и интерпретатор Lua MAME -
Распространение Lua 5.4.4 Makefile: Pastebin
MAME Makefile: Pastebin
MAME Lua Makefile : Pastebin
Я разбираюсь в основах Makefile, но не уверен, какие здесь существенные различия. Я полагаю, что именно так выбирается компилятор C и создаются объектные файлы. У меня есть несколько компиляторов C на Mac, который я использую. gcc вызывается для интерпретатора MacOS Lua. Не уверен, какой из них вызывается для MAME и какие могут быть соответствующие CFLAGS.
Есть ли прямой способ гарантировать, что интерпретатор Lua MacOS и интерпретатор Lua MAME создаются с использованием одних и тех же компиляторов и параметры компилятора?
РЕДАКТИРОВАТЬ:
Ссылка на мастер-файл MAME здесь. Включаю его, поскольку он доступен для просмотра, и я понимаю, что он ссылается на несколько других сторонних make-файлов.
Ссылка на сторонний просмотр MAME на сторонний make-файл Lua находится здесь.
Подробнее здесь: https://stackoverflow.com/questions/791 ... th-the-run