Lua5.3 Mac OS X

From havefunsoft wiki
Jump to: navigation, search

Как использовать Lua 5.3 в проектах MacOSX

Быстро и 64-хбитно

Быстро можно получить результат в том, случае если не собирать библиотеку для Lua под i386.

В общем доступе имеется 64-битная Lua библиотека (lua-5.3.2_MacOS1011_lib.tar.gz).

Необходимо создать "Program" проект в Лазарусе.

Задать тип компилятора x86_64. (установленный FPC должен поддерживать x86_64)

Cputype.png

Скопировать файл динамической библиотеку lua53.dylib.

Скопировать файл lua53.pas в папку с проектом, и добавить lua53 в uses.

Lua64console.png

Подправить lua53.pas и добавить имя библиотеки в случае компилирования для darwin

Dylibheader.png

Добавить код который инициализации Lua и собственно Lua скрипт. (Источник кода)

Добавить линковку библиотеки {$linklib liblua53.dylib}

program project1;

{$mode objfpc}{$H+}
{$linklib liblua53.dylib} // обязательная линковка библиотеки

uses
  {$IFDEF UNIX}cthreads,{$ENDIF}
  Classes, lua53
  { you can add units after this };

var
  L: Plua_State;
  result: integer;

begin
  L := luaL_newstate();
  luaL_openlibs(L);
  result := luaL_dostring(L, 'print ("`Hélène` has "..utf8.len"Hélène".." UTF8 characters.")');
  lua_close(L);
end.


Скомпилировать проект и запустить.

(не очень) Долго

Установка

1. необходимо скачать заголовочный файл для паскаля. Репозитарий https://github.com/malcome/Lua4Lazarus, единственный необходимый файл lua53.pas

2. необходимо скачать собранную библиотеку Lua для MacOSX http://luabinaries.sourceforge.net/download.html (lua-5.3.2_MacOS1011_lib.tar.gz). Но можно собрать из исходников, как указано на официальном сайте.

Библиотеку нужно собрать из исходников, чтобы была поддержка i386 архитектуры.

Инструкции http://blog.spreendigital.de/2015/01/22/how-to-compile-lua-5-3-0-as-a-mac-os-x-dynamic-library

2.1. Необходима динамическая библиотека liblua5.3.dylib, т.к. заголовочный файл поддерживает только динамическую загрузку.

Liblua dylib image.png

3. Создать Application проект Lazarus-а

3.1. Сохранить и скомпилировать/запустить. Lazarus должен будет создать bundle для проекта.

4. Скопировать lua53.pas в папку с проекта

Lua53 pas at project.png

Ссылки