ライブラリのコンパイル・ビルド・
lightside:% libtool cc -c foo/x.c -o foo/x.lo
other--config--debug-n, --dry-run--features--finish--mode=MODEcompileexecutefinishinstalllinkuninstall--features--help--version-lNAME-o OUTPUT-FILE-LLIBDIR-R LIBDIR-all-static-avoid-version-dlopen FILE-dlpreopen FILE-export-dynamic-export-symbols FILE-export-symbols-regex REGEX-module-no-undefined-release RELEASE-rpath LIBDIR-static-version-info CURRENT[:REVISION[:AGE]]-dlopen FILE
CURRENTREVISIONAGEconfig.guessconfig.subltconfigltmain.sh
struct lt_dlsymlist { const char *NAME; lt_ptr_t ADDRESS; }
const lt_dlsymlist * lt_preloaded_symbols;
lightside:~% libtool cc -c foo.c cc -c -fPIC -DPIC foo.c -o .libs/foo.lo cc -c foo.c >/dev/null 2>&1 lightside:~% libtool cc -c bar.c cc -c -fPIC -DPIC bar.c -o .libs/bar.lo cc -c bar.c >/dev/null 2>&1
lightside:~% libtool cc -o libbaz.a foo.o bar.o ar cru libbaz.a foo.o bar.o ranlib libbaz.a
lightside:~% libtool cc -o libbaz.la foo.lo bar.lo \ -rpath /usr/local/lib cc -shared -Wl,-soname -Wl,libbaz.so.0 \ ar cru .libs/libbaz.a foo.o bar.o creating libbaz.la
lightside:/tmp% libtool -n install libbaz.la /usr/local/lib (cd /usr/local/lib && ln -s libbaz.so.0.0.0 libbaz.so.0) (cd /usr/local/lib && ln -s libbaz.so.0.0.0 libbaz.so) install libbaz.la /usr/local/lib/libbaz.la ranlib /usr/local/lib/libbaz.a chmod 644 /usr/local/lib/libbaz.a
cc -c a.c
cc a.c -lbaz -L/usr/local/lib
lightside:~% libtool cc a.o libbaz.la -o a -lm cc a.o -Wl,--rpath -Wl,/usr/local/lib \ -o .libs/a -lm lightside:~% libtool gdb a [複雑なデバッグのセッションは省略] lightside:~% libtool install -c a /usr/local/bin/a install -c .libs/a /usr/local/bin/a
AC_DEFUN(AM_INIT_AUTOMAKE) AC_INIT(a.c) AM_INIT_AUTOMAKE(a, 1.0) AC_PROG_CC AM_PROG_LIBTOOL AC_OUTPUT(Makefile)
# ライブラリのビルド lib_LTLIBRARIES=libbaz.la libbaz_la_SOURCES = foo.c bar.c libbaz_la_LDFLAGS = -version-info 0:0:0
bin_PROGRAMS = a a.debug
# a.c と libbaz.la から a をビルド a_SOURCES = a.c a_LDADD = libbaz.la
# 静的デバッグバージョンを作成 a_debug_SOURCES = a.c a_debug_LDADD = libbaz.la a_debug_LDFLAGS = -static
lightside:~% aclocal; libtoolize; automake --add-missing; autoconf