Как мне скомпилировать код, использующий C API Lua 5.1? - PullRequest
0 голосов
/ 06 октября 2018

У меня есть код, #include с файлами lua.h, lapi.h, lualib.h и lauxlib.h из источника Lua.Теперь мне нужно скомпилировать этот код.

Моя первая мысль - включить все файлы .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 Ответ

0 голосов
/ 06 октября 2018

Код, который использует Lua API - это всего лишь некоторая программа на Си, которая использует библиотеку Lua.В моей системе Linux / Debian эта библиотека Lua для разработчиков предоставляется пакетом liblua5.3-dev Debian.В этом пакете также есть файлы для pkg-config

Так что вы пишете свою программу на C как обычно.Возможно, вы будете использовать какой-нибудь инструмент автоматизации сборки .В моей системе Debian это могут быть make, ninja и многие другие.Это ваш выбор и ваша ответственность - выбрать правильный инструмент автоматизации сборки.

Затем вы настраиваете свой инструмент автоматизации сборки так, чтобы передавать соответствующие флаги препроцессора вашему компилятору C и передавать соответствующие флаги связывания во время соединения.

В моей системе Linux я бы выбрал сборку с make, конечно с использованием компилятора GCC , и я бы отредактировал мой Makefile (см. * 1026)* этот пример) содержит такие вещи, как:

CC= gcc
CFLAGS= -g $(shell pkg-config --cflags lua5.3) -Wall -Wextra
LDFLAGS+= $(shell pkg-config --libes lua5.3)

Я знаю, что такое GCC и как его запускать из командной строки,

ВыВы должны быть уверены, что знаете, как на практике использовать gcc для компиляции программы, состоящей из нескольких единиц перевода и использования некоторой внешней библиотеки.Вам также нужно понять, почему инструменты автоматизации сборки так полезны.В зависимости от вашего опыта, вам может потребоваться несколько недель, чтобы узнать больше об этом.

Моя рекомендация: найдите небольшую бесплатную программу (например, на github )и изучите, как это должно быть построено (поэтому изучите достаточно, чтобы понять процесс его сборки).Вы многому научитесь.Посмотрите на такие вещи, как luakit

...