Как мне скомпилировать код, который использует 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) и изучите, как она должна быть собрана (поэтому изучите достаточно, чтобы понять процесс ее сборки). Вы многому научитесь. Посмотрите на такие вещи, как Луакит

Другие вопросы по тегам