Я работаю над программой, использующей libgit2. Я сохранил код в одном файле c. Скажите:
somefile. c
Я компилирую и использую его. Теперь я хочу выделить некоторые детали, связанные с libgit2, в отдельную библиотеку внутри проекта. Итак, я создал h-файл со структурами данных, которые мне нужны, и определениями функций, которые я хочу использовать. Пока ничего особенного: инициализация, передача пути к репо и sa treei sh ... это константа * константа .... затем в файле библиотеки c у меня есть реализация функций в файл .h.
В настоящее время макет выглядит следующим образом:
include/mylib.c
include/mylib.h
somefile.c
В include/mylib.h
у меня есть одна структура и пара функций:
struct blah {} blah_info;
int blah_init(cont char * path, const char * treeish);
int blah_shutdown();
В include / mylib. c Я включаю mylib.h:
#include "mylib.h" # notice that I don't have to use "include" in the path
И затем у меня есть определения для двух функций, которые я помещаю в файл .h.
В somefile.c
теперь я включаю файл библиотеки c, а не файл .h (и больше не нужно включать git2.h, как это делается сейчас в файлах mylib) .
#include "include/mylib.c"
И это позволяет мне скомпилировать и запустить программу, как это было до того, как я разделил ее на части но Я знаю, что можно включить include/mylib.h
из оригинала . c файл. Я думаю, что перед компиляцией окончательной программы необходимо собрать библиотеку? Какие шаги необходимы для этого?
Прямо сейчас я компилирую вручную в сценарии оболочки, вызывая G CC за один раз ... так что, если мне нужно выполнить больше команд для этого, просто дайте мне знать, чтобы я добавил их в скрипт.