Witam
Stworzyłem plik library.so za pomocą tego pliku Makefile:

#Makefile

all: library.so

library.so: drukuj.c dzial.c wpisz.c
	gcc -fPIC -c drukuj.c
	gcc -fPIC -c dzial.c
	gcc -fPIC -c wpisz.c

	gcc -shared -o library.so drukuj.o dzial.o wpisz.o

clean:
	rm -f drukuj.o dzial.o wpisz.o library.so *~

Nastepnie plik library.so umiescilem w folderze lib.

Plik bib.h umiescilem w folderze include

//bib.h

typedef struct{
float re;
float im;
char k;
}czesci;

void drukuj(czesci);
void modul(czesci);
void dodaj(czesci, czesci);
void pomnoz(czesci, czesci);
void podziel(czesci, czesci);
void sprzezenie(czesci);
void pierwiastkowanie(czesci);
void wpisz(czesci, czesci, czesci);

plik main.c umiescilem w folderze src:

//main.c

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include "bib.h"

int main()
{
czesci a,b,c,d;

printf("Jeśli chcesz dodać jako działanie podaj +, pomnożyć *,\n podzielić /, sprzezenie _, modul |, pierwiastkowanie ^\n");

wpisz(a,b,d);
return 0;
}

W tym samym folderze mam nowy plik Makefile, który ma kompilować już z biblioteką wspóldzieloną:

#Makefile
all: lista03/zesp/bibwspol/bin/program

lista03/zesp/bibwspol/bin/program: main.o
	gcc -Llista03/zesp/bibwspol/lib -o lista03/zesp/bibwspol/bin/program main.o -lbib

main.o: main.c
	gcc -Ilista03/zesp/bibwspol/include -c main.c 

clean:
	rm -f main.o lista03/zesp/bibwspol/bin/program *~

Niestety przy wpisywaniu polecenia make wyskakuje mi:

gcc -Ilista03/zesp/bibwspol/include -c main.c
main.c17: error: bib.h: Nie ma takiego pliku ani katalogu
main.c: In function ‘main’:
main.c error: ‘czesci’ undeclared (first use in this function)
main.c error: (Each undeclared identifier is reported only once
main.c error: for each function it appears in.)
main.c error: expected ‘;’ before ‘a’
main.c error: ‘a’ undeclared (first use in this function)
main.c error: ‘b’ undeclared (first use in this function)
main.c error: ‘d’ undeclared (first use in this function)
make: *** [main.o] Błąd 1

I nie wiem w czym może być problem. Proszę o pomoc. Dopiero zaczynam te zabawy z Makefile więc proszę o wyrozumiałość. Albo tej struktury w bib.h nie powinno tam być, albo coś mam źle w pliku MAkefile w folderze src.

Wczesniej robilem zwykły Makefile z biblioteką statyczna i bez podziału na foldery i kompilowało się bez problemu