Шаг 1
Итак, собираем Lua.
Upd: как собрать Lua для MSVC++ написано в Шаг 10.
Идем на www.lua.org и скачиваем исходники.
Распаковываем
архив в отдельную папку. Теперь нам нужно собрать интерпретатор языка.
Поскольку мы собираемся в дальнейшем встроить поддержку Lua в нашу
собственную программу, то есть смысл работу сразу разделить на две части
- отдельно собрать библиотеку .dll, содержащую всю функциональность
Lua, а затем собрать собственно интерпретатор, который будет
пользоваться этой библиотекой.
Для сборки будет использоваться бесплатная IDE
Code::Blocks(www.codeblocks.org).
В папке, куда были распакованы файлы Lua, создаем новый .dll проект.

Затем добавляем в проект все *.c файлы из папки src, кроме двух
файлов- lua.c и luac.c.
В
свойствах проекта на вкладке Targets изменяем имя библиотеки на lua.dll
и проверяем, чтобы стояла галочка напротив Create Import Library.

Все готово для сборки. Нажимаем Build. Если все прошло нормально, то в
нашей папке появились два файла - lua.dll и liblua.a.
Прекрасно! Половина пути пройдена, осталось совсем немного - собрать
интерпретатор.
Для интерпретатора создаем новый консольный проект.

Удаляем созданный визардом файл main.cpp, а вместо него добавляем в проект файл lua.c.
Теперь нужно связать проект с библиотекой lua.dll, которую мы собрали на первом шаге.
Для этого выбираем у проекта Build Options и во вкладке Linker задаем созданную вместе с
lua.dll файлом библиотеку liblua.a.

Внимание! Для того, чтобы линковщик правильно смог найти нашу библиотеку, ему нужно указать путь к папке с библиотекой.
Для этого переходим на вкладку Directories и в ней на вкладку Linker. В
качестве папки с библиотеками задаём текущую папку проекта "./" (без
кавычек).

На картинке путь выглядит несколько иначе, но это сделал уже Code::Blocks.
Чтобы собрать проект нажимаем Build. Поскольку мы собрали консольную программу, то для ее запуска нажимаем Run.
В результате получаем что-то вроде этого:

Курсор нам приветливо моргает, давайте прям тут же напишем программу на Lua. Не будем уходить от классики.
Пусть первая программа выведет нам в консоль "Hello, World!".
Для этого в консоли так прямо и пишем:
print("Hello, World!")

Нажимаем Enter

Программа сделала то, что мы хотели - напечатала "Hello, World!".
Теперь проверим математические способности программы. Заставим ее
вычислить что-нибудь серьезное. Пишем
print(1 + 2)
Нажимаем Enter:

Ну, программа вроде не ошиблась. Теперь было бы неплохо закончить
работу. Самое простое это, конечно, нажать на крестик в правом верхнем
углу. Но мы не ищем легких путей. Завершим работу интерпретатора
средствами самого языка. Для этого напишем:
os.exit()
И нажмем Enter.

В результате сама IDE Code::Blocks выведет нам сообщение:

Нажимаем Enter, после чего окно, наконец-то, исчезает.
Итак, что мы сделали на первом шаге:
- Скачали Lua;
- Собрали из исходников библиотеку, которой сможем пользоваться и в дальнейшем;
- Собрали интерпретатор Lua, используя библиотеку;
- Внутри интерпретатора написали несколько коротких программ на Lua
(поскольку каждая строка, набранная нами в интерпретаторе выполняла
свою, четко очерченную задачу, как то "печать строки", "вычисление
арифметического выражения", "завершение работы интерпретатора", то
каждую строку можно смело называть отдельной программой)
- Начали ждать Шаг 2
За сим автор откланивается, надеясь на то, что первый шаг не окажется последним.
Назад