Shared Library Search Paths. It's becoming more and more common these days to link everything against shared libraries, and in fact many software packages (Tcl and Cyrus SASL come to mind) basically just don't work properly static. This means that one has to more frequently deal with the issues involved in finding the appropriate libraries at runtime. Here's a brief primer on the way that this works on Solaris and Linux. The search paths for libraries come from three sources: the environment variable LD_LIBRARY_PATH (if set), any rpath encoded in the binary (more on this later), and the system default search paths. They're searched in this order, and the first matching library found is used. LD_LIBRARY_PATH is broken and should not be used if at all possible. It's broken because it overrides the search paths for all binaries that you run using it, not just the one that you care about, and it doesn't add easily to other competing settings of LD_LIBRARY_PATH.
Now, more about the other two mechanisms in detail. Installation - mothur. Makefile options to consider before you get started. Mac OSX In the Mac OSX and Linux-type environments, you need to have a C++ compiler installed. These are typically installed with most linux-type operating systems and is on the Mac OSX installation CD/DVD. For Mac OSX users, you need to install the Xcode developer's tools. After downloading mothur, decompress it. Escriba:~ pschloss$ unzip mothur.zip This will generate a mothur folder. Escriba:~ pschloss$ cd mothur escriba:~ pschloss$ make Go ahead and try to run mothur: escriba:~ pschloss$ . Hopefully, mothur will open in the interactive mode. If you are analyzing large data sets (e.g. from pyrosequencing) in OS X and you have more than 2 GB of RAM in your computer, you can add a flag to the make file to use 64-bit pointers by opening the makefile and changing the lines that read: 64BIT_VERSION ?
To 64BIT_VERSION ? This will add -arch x86_64 to the compiling and linking flags. USEMPI ? USEMPI ? Linux/Unix mkdir mothur cd mothur unzip .. . mothur. Stahl’s blog » SCons vs. GNU Autotools. When I started to write hamsterdb, I used hand-written makefiles. They quickly became a nightmare to maintain, and I didn’t want to spend more time for writing makefiles than for writing code. So I looked for alternatives, and decided to settle on SCons instead of GNU Autotools (autoconf and automake). And now I decided to revert my decision. Why? Because SCons is far more complicated than it looks, while autoconf/automake is far more simple than it seems.
The main advantage of SCons is that it’s a python application. Also, python is an interpreted language. Of course the autotools are bizarre. And using autotools brings another huge advantage – the infrastructure is already available on every Unix/Linux system. I have not yet finished the transition to automake/autoconf.
Here’s more documentation about autoconf and automake: chris Coding, hamsterdb, Uncategorized. Linux Tutorial - Static, Shared Dynamic and Loadable Linux Libraries. This methodology, also known as "shared components" or "archive libraries", groups together multiple compiled object code files into a single file known as a library. Typically C functions/C++ classes and methods which can be shared by more than one application are broken out of the application's source code, compiled and bundled into a library. The C standard libraries and C++ STL are examples of shared components which can be linked with your code.
The benefit is that each and every object file need not be stated when linking because the developer can reference the individual library. This simplifies the multiple use and sharing of software components between applications. It also allows application vendors a way to simply release an API to interface with an application. Components which are large can be created for dynamic use, thus the library remain separate from the executable reducing it's size and thus disk space used. Library naming conventions: How to generate a library: Links: Migrating UNIX Build Environments.
SCONS. GNU Make. Autotools. Boost.Build.