Моя рабочая программа Lua завершается с ошибкой при запуске из интерпретатора MAME Lua с ошибкой времени выполнения «симC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Моя рабочая программа Lua завершается с ошибкой при запуске из интерпретатора MAME Lua с ошибкой времени выполнения «сим

Сообщение Anonymous »

Для этого есть 3 применения:
  • python_server.py: скрипт Python, открывающий сокет в Mac OS
  • lua_client.lua: скрипт Lua, который отправляет и получает сообщения через один и тот же сокет.
  • MAME: эмулятор мультиаркадных автоматов. Эмулятор, предоставляющий интерпретатор Lua для взаимодействия с эмулируемыми играми.
Я использую Mac OS, 14.2.1

Lua версии 5.4.4

MAME Lua версии 5.4.4

MAME версии 0.270
Я собрал MAME и Lua с помощью команды строку с помощью Make.
Я использую CFLAG:

Код: Выделить всё

CFLAGS="-DLUA_USE_MACOSX"
... при компиляции MAME для включения динамической загрузки библиотек Lua из интерпретатора Lua MAME.
При запуске под 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»