Tworzenie biblioteki współdzielonej i plik Makefile

0

Cześć!
Chcę utworzyć bibliotekę współdzieloną i to wszystko zapisać w pliku Makefile tak, żeby mi polecenie make wszystko zrobiło :)

Niestety dostaję taki komunikat:

login@ubuntu:~/Lab2/Zad9$ make
gcc -fPIC -c randapi.c
gcc -fPIC -c initapi.c
gcc -shared randapi.o initapi.o -o libmojshar.so
gcc -L. -lmojshar test.c -o zad1
/tmp/cc3xhIep.o: In function `main':
test.c:(.text+0xa): undefined reference to `initRand'
test.c:(.text+0x28): undefined reference to `getRand'
test.c:(.text+0x7c): undefined reference to `getSRand'
collect2: error: ld returned 1 exit status
make: *** [zad1] Błąd 1

Nie mam już pojęcia gdzie może być błąd. Rzuci ktoś okiem na to?
Kody źródłowe w załączeniu.
Program do szkoły :-)

0

Doincluduj w test.c:

#include "randapi.c"
#include "initapi.c"
0

Super, działa!

Podejrzewam jednak, że chodzi o to aby rozpisać includowanie tych plików do biblioteki współdzielonej a póżniej do Makefila...

0

Mam nowy problem z utworzeniem biblioteki dzielonej dla projektu, który zawiera tylko jeden plik: Zad13.c

To wszystko musi być zapisane w pliku Makefile i po uruchomieniu make ta bliblioteka musi się utworzyć.

Taką mam zawartość pliku Makefile:

Zad13: Zad13.c libmoja.so
gcc -L. -lmoja Zad13.c -o Zad13

libmoja.so: Zad13.o
gcc -shared Zad13.o -o libmoja.so

Dostaję taki komunikat:

login@ubuntu:~/Lab2/Zad13/best$ make
gcc -L. -lmoja Zad13.c -o Zad13
login@ubuntu:~/Lab2/Zad13/best$ ./Zad13
./Zad13: error while loading shared libraries: libmoja.so: cannot open shared object file: No such file or directory
login@ubuntu:~/Lab2/Zad13/best$ 

Gdzie robię błąd?

Plik Zad13.c i plik Makefile spakowane w załączeniu.

Ktoś pomoże?

1 użytkowników online, w tym zalogowanych: 0, gości: 1