При добавлении функций в libbluray и тестировании его во включенном примере make создает «неопределенную ссылку» только для добавленной функции, остальные функции в заголовке работают нормально.
Точные изменения, например:
src/libbluray/bluray.c:
+void do_stuff()
+{
+ //nothing
+}
src/libbluray/bluray.h:
+void do_stuff(void);
src/examples/index_dump.c:
int main(int argc, const char *argv[])
{
+
+ do_stuff();
+
Ошибка:
/usr/bin/ld: src/examples/index_dump.o: in function `main':
.../libbluray/src/examples/index_dump.c:66: undefined reference to `do_stuff'
index_dump.c включает только
#include <stdio.h>
#include "bluray.h"
Это оченьсбивает с толку.
Также, fgrep do_stuff .libs/libbluray.so
показывает, что do_stuff
находится в объектном файле.