Previous Next Table of Contents

9. Membuat Library Sendiri

9.1 Membuat Library Archive

Membuat library archive sangat mudah. Misalnya kita punya file hello.c yang isinya:


/* hello.c */
#include <stdio.h>

void print_hello(void)
{
        puts("Hello world");
};

untuk membuat libhello.a dari file hello.c itu, perintahnya adalah:

$ gcc -c hello.c
$ ar rcs libhello.a hello.o

Perintah yang digunakan untuk membuat library archive adalah ar (archiver). Option r artinya add/replace objek, c artinya create archive kalau belum ada, s artinya membuat/mengupdate index objek dalam archive. Informasi lebih lanjut dapat dibaca di 'man ar'.

Jika kita lihat isi file libhello.a:

$ nm libhello.a
hello.o:
00000000 t gcc2_compiled.
00000000 T print_hello
         U puts

terlihat bahwa fungsi print_hello() kita terdapat di situ.

9.2 Membuat Shared Library

Pada bagian dynamic linking telah dijelaskan panjang lebar tentang shared library. Jika Anda belum membacanya, silakan dibaca dulu.

Untuk membuat shared library libhello.so.1.0.0 dari file hello.c:

$ gcc -o libhello.so.1.0.0 -shared hello.c \
-Wl,-soname=/usr/local/lib/libhello.so.1

option-option yang kita berikan di atas adalah:

Pada bagian dynamic linking telah dijelaskan sedikit tentang soname dan penomoran versi library. Jika Anda belum membacanya, silakan dibaca dulu.

Untuk me-link program kita dengan libhello.so.1.0.0 ini, pertama kita harus membuat symbolic link libhello.so dulu:

$ ln libhello.so.1.0.0 libhello.so

Baru kemudian kita link dengan:

$ gcc -o hello main.o -L. -lhello


Previous Next Table of Contents