Я делаю тестовую настройку статической библиотеки и программы C. Код библиотеки, расположенный в подкаталоге foo моего проекта, содержит следующие файлы:
foo / foo.c:
#include <stdio.h>
void foo(void) {
printf("something");
}
foo / foo.h:
#ifndef foo_h__
#define foo_h__
extern void foo(void);
#endif
Мой программный код выглядит следующим образом:
test.c:
#include "foo.h"
int main() {
foo();
return 0;
}
У меня есть сценарий сборки под названием build, который содержит следующее:
сборка:
#!/bin/bash
gcc -c -Wall -Werror foo/foo.c
ar rcs libfoo.a foo.o
gcc -static -o test test.c libfoo.a # I have also tried -L. -lfoo
Но когда я запускаю сборку, появляется следующая ошибка:
test.c:1:17: fatal error: foo.h: No such file or directory
#include "foo.h"
^
Compilation terminated
Однако это работает, когда я опускаю строку #include, но я бы предпочел, чтобы я мог использовать файлы заголовков в своих статических библиотеках. Что я делаю не так и как это исправить?