# HG changeset patch # User Markus Bröker # Date 1229187479 -3600 # Node ID a1aa30f0f90489e4ef884feae6570f2e8068cb56 # Parent c3dc3eb3b5410e99bda86a54dd07b40e1893dac3 libtest demonstrates how to use shared libraries committer: Markus Bröker diff --git a/libtest/Makefile b/libtest/Makefile new file mode 100644 --- /dev/null +++ b/libtest/Makefile @@ -0,0 +1,24 @@ + CC = gcc + CFLAGS =-Wall -O2 -fPIC +LDFLAGS = -Llib -ltest +OBJECTS = func1.o func2.o + +.c.o: + $(CC) -c $(CFLAGS) -shared $< + +all: lib/libtest.so.1.0.1 prog + +prog: main.c + $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ + +lib/libtest.so.1.0.1: $(OBJECTS) + $(CC) -shared -Wl,-soname,lib/libtest.so.1 $(OBJECTS) -o $@ + @echo "Look carefully at this :)" + ln -s libtest.so.1.0.1 lib/libtest.so.1 + ln -s libtest.so.1.0.1 lib/libtest.so + +.PHONY: clean + +clean: + rm -f lib/libtest.* + rm -f *.o prog diff --git a/libtest/func1.c b/libtest/func1.c new file mode 100644 --- /dev/null +++ b/libtest/func1.c @@ -0,0 +1,6 @@ +#include + +void func1() +{ + printf("Func1: Implement me\n"); +} diff --git a/libtest/func2.c b/libtest/func2.c new file mode 100644 --- /dev/null +++ b/libtest/func2.c @@ -0,0 +1,6 @@ +#include + +void func2() +{ + printf("Func2: Implement me\n"); +} diff --git a/libtest/lib/.keep b/libtest/lib/.keep new file mode 100644 diff --git a/libtest/main.c b/libtest/main.c new file mode 100644 --- /dev/null +++ b/libtest/main.c @@ -0,0 +1,10 @@ +void func1(); +void func2(); + +int main(int argc, char **argv) +{ + func1(); + func2(); + + return 0; +}