Как мне скомпилировать код, который использует C API Lua 5.1?
У меня есть код, который #include
файлы lua.h
, lapi.h
, lualib.h
, а также lauxlib.h
из источника Луа. Теперь мне нужно скомпилировать этот код.
Моя первая мысль состоит в том, чтобы включить все .c
файлы в исходном коде Lua или просто выяснить, какие из них .c
файлы, которые мне действительно нужны, но есть ли лучший или даже правильный способ компилировать код, использующий C API Lua 5.1?
Я должен добавить, что я полностью начал компиляцию и почти ничего не знаю. Я знаю, что такое GCC и как его запускать из командной строки, но это все.
Точнее, я знаю, что моя команда компиляции с использованием GCC будет выглядеть примерно так:
gcc code.c
Теперь мне нужно добавить каждый файл в исходный код Lua в качестве аргумента, подобного этому?
gcc code.c lapi.c lauxlib.c lbaselib.c lcode.c …
или есть лучший способ сделать это?
1 ответ
Код, использующий Lua API, - это просто некая программа на C, которая использует библиотеку Lua. В моей системе Linux/Debian эта библиотека Lua для разработчиков предоставляется liblua5.3-dev
Пакет Debian. Этот пакет также содержит файлы для pkg-config
Итак, вы пишете свою C-программу как обычно. Возможно, вы будете использовать какой-то инструмент автоматизации сборки. В моей системе Debian это может быть make
, ninja
и много других. Это ваш выбор и ваша ответственность, чтобы выбрать правильный инструмент автоматизации сборки.
Затем вы конфигурируете свой инструмент автоматизации сборки для передачи соответствующих флагов препроцессора вашему компилятору C и для передачи соответствующих флагов связывания во время соединения.
В моей системе Linux я бы выбрал make
, конечно, используйте компилятор GCC, и я бы отредактировал мой Makefile
(см. этот пример), чтобы содержать такие вещи, как:
CC= gcc
CFLAGS= -g $(shell pkg-config --cflags lua5.3) -Wall -Wextra
LDFLAGS+= $(shell pkg-config --libes lua5.3)
Я знаю, что такое GCC и как запустить его из командной строки,
Вы должны быть уверены, что знаете, как практически использовать gcc
составить программу, состоящую из нескольких блоков перевода и использующую некоторую внешнюю библиотеку. Вам также нужно понять, почему инструменты автоматизации сборки так полезны. В зависимости от вашего опыта, вам может потребоваться несколько недель, чтобы узнать больше об этом.
Моя рекомендация: найдите небольшую бесплатную программу (например, на github) и изучите, как она должна быть собрана (поэтому изучите достаточно, чтобы понять процесс ее сборки). Вы многому научитесь. Посмотрите на такие вещи, как Луакит