Library Name : hello
filename : hello.c
#include
void Hello()
{
printf("Hello World .. How are you 1\n");
}
======================================
Header File:
hello.h
#ifndef __HELLO_H
#define __HELLO_H
void Hello(void);
#endif
===============================
Application :
filename : app.c
#include
#include "hello.h"
int main()
{
Hello();
return 0;
}
====================================
Makefile:
VERSION = 1
MINORVER = 1
RELEASEVER = 1
LIBNAME = libhello
DYLIBSUFFIX = so
SONAME = $(LIBNAME).$(DYLIBSUFFIX).$(VERSION)
REALNAME = $(SONAME).$(MINORVER).$(RELEASEVER)
MAJORNAME = $(SONAME)
DYLIBNAME = $(LIBNAME).$(DYLIBSUFFIX)
OBJS = hello.o
all: $(LIBNAME)
$(LIBNAME): $(OBJS)
$(CC) -shared -Wl,-soname,$(SONAME) -o $(REALNAME) $(OBJS)
ln -sf $(REALNAME) $(MAJORNAME) && ln -sf $(MAJORNAME) $(DYLIBNAME)
hello.o: hello.c
$(CC) -fPIC -c -g -Wall hello.c
app: app.o
$(CC) -o $@ app.o -L./ -lhello
clean:
-@rm *.o
distclean: clean
-@rm libhello.so* app