, on certain platforms, a wrapper executable *note Wrapper executables::) was created in the current directory. Since libtool created a wrapper script, you should use libtool to install it and debug it too. However, since the program does not depend on any uninstalled libtool library, it is probably usable even without the wrapper script. On NetBSD 1.2, libtool encodes the installation directory of 'libhello', by using the '-R/usr/local/lib' compiler flag. Then, the wrapper script guarantees that the executable finds the correct shared library (the one in './.libs') until it is properly installed. Let's compare the two different programs: burger$ time ./hell.old Welcome to GNU Hell! ** This is not GNU Hello. There is no built-in mail reader. ** 0.21 real 0.02 user 0.08 sys burger$ time ./hell Welcome to GNU Hell! ** This is not GNU Hello. There is no built-in mail reader. ** 0.63 real 0.09 user 0.59 sys burger$ The wrapper script takes significantly longer to execute, but at least the results are correct, even though the shared library hasn't been installed yet. So, what about all the space savings that shared libraries are supposed to yield? burger$ ls -l hell.old libhello.a -rwxr-xr-x 1 gord gord 15481 Nov 14 12:11 hell.old -rw-r--r-- 1 gord gord 4274 Nov 13 18:02 libhello.a burger$ ls -l .libs/hell .libs/libhello.* -rwxr-xr-x 1 gord gord 11647 Nov 14 12:10 .libs/hell -rw-r--r-- 1 gord gord 4274 Nov 13 18:44 .libs/libhello.a -rwxr-xr-x 1 gord gord 12205 Nov 13 18:44 .libs/libhello.so.0.0 burger$ Well, that sucks. Maybe I should just scrap this project and take up basket weaving. Actually, it just proves an important point: shared libraries incur overhead because of their (relative) complexity. In this situation, the price of being dynamic is eight kilobytes, and the payoff is about four kilobytes. So, having a shared 'libhello' won't be an advantage until we link it against at least a few more programs. * Menu: * Wrapper executables:: Wrapper executables for some platforms. ---------- Footnotes ---------- (1) However, you should avoid using '-L' or '-l' flags to link against an uninstalled libtool library. Just specify the relative path to the '.la' file, such as '../intl/libintl.la'. This is a design decision to eliminate any ambiguity when linking against uninstalled shared libraries. (2) And why should we? 'main.o' doesn't directly depend on '-lm' after all.