Code::Chunks

blog << self.mind.dump

A Makefile for the Simplest Shared Library

| Comments

The problem: writing a very simple Makefile to build a C shared library. Let’s say we have just coded the most wonderful library foo, which – not too surprisingly – has greetings as its main purpose.

(Yeah, pretty impressive). We may also want to push it further, and test it using a quick C executable:

Here’s a simple Makefile with some nice features:

  • the name and version of the library are just parameters
  • it creates a shared object with a proper soname
  • it compiles the library with debugging symbols, optimization and strict error checking

Nice. But what about our little test program? Let’s add some clutter to the minimal Makefile:

The complete version has a test target which builds the foo_test executable (only if needed) and launches it (always). There is an intermediate step (the one involving ldconfig) which takes care of creating some symlinks needed to link against our foo library.

References

Program Library HOWTO - The section about shared libraries

Shared objects for the object disoriented! - Quite old (2001) but very informative article

Simple makefile for compiling a shared object library file - Found on Stackoverflow (the library is written in C++, but the Makefile is adaptable to C with few modifications)

Comments