$ git clone https://github.com/hANSIc99/library_sample
Cloning into 'library_sample'...
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 13 (delta 4), reused 11 (delta 2), pack-reused 0
Receiving objects: 100% (13/13), done.
Resolving deltas: 100% (4/4), done.
$ cd library_sample
$ make
cc -c main.c -Wall -Werror
cc -c libmy_static_a.c -o libmy_static_a.o -Wall -Werror
cc -c libmy_static_b.c -o libmy_static_b.o -Wall -Werror
ar -rsv libmy_static.a libmy_static_a.o libmy_static_b.o
ar: creating libmy_static.a
a - libmy_static_a.o
a - libmy_static_b.o
cc -c -fPIC libmy_shared.c -o libmy_shared.o
cc -shared -o libmy_shared.so libmy_shared.o
cc -L. -lmy_shared -o my_app main.o libmy_static.a -Wall -Werror
/usr/bin/ld: main.o: in function `main':
main.c:(.text+0x27): undefined reference to `negateIfOdd'
collect2: error: ld returned 1 exit status
make: *** [Makefile:15: all] Error 1