Library Version 18.1.25

Changing compile or load options
Prev | Chapter 6. Building Berkeley DB for UNIX/POSIX | Next

## Changing compile or load options

You can specify compiler and/or compile and load time flags by using environment variables during Berkeley DB configuration. For example, if you want to use a specific compiler, specify the CC environment variable before running configure:

    prompt: env CC=gcc ../dist/configure

Using anything other than the native compiler will almost certainly mean that you'll want to check the flags specified to the compiler and loader, too.

To specify debugging and optimization options for the C compiler, use the CFLAGS environment variable:

    prompt: env CFLAGS=-O2 ../dist/configure

To specify header file search directories and other miscellaneous options for the C preprocessor and compiler, use the CPPFLAGS environment variable:

    prompt: env CPPFLAGS=-I/usr/contrib/include ../dist/configure

To specify debugging and optimization options for the C++ compiler, use the CXXFLAGS environment variable:

    prompt: env CXXFLAGS=-Woverloaded-virtual ../dist/configure

To specify support for the C11/C++11 standards, use the CFLAGS and CXXFLAGS environment variables:

    prompt: env CFLAGS="-std=c11" ../dist/configure

or

    prompt: env CFLAGS="-std=c11" CXXFLAGS="-std=c++11" ../dist/configure

To specify miscellaneous options or additional library directories for the linker, use the LDFLAGS environment variable:

    prompt: env LDFLAGS="-N32 -L/usr/local/lib" ../dist/configure

If you want to specify additional libraries, set the LIBS environment variable before running configure. For example, the following would specify two additional libraries to load, "posix" and "socket":

    prompt: env LIBS="-lposix -lsocket" ../dist/configure

Make sure that you prepend -L to any library directory names and that you prepend -I to any include file directory names! Also, if the arguments you specify contain blank or tab characters, be sure to quote them as shown previously; that is with single or double quotes around the values you are specifying for LIBS.

The env command, which is available on most systems, simply sets one or more environment variables before running a command. If the env command is not available to you, you can set the environment variables in your shell before running configure. For example, in sh or ksh, you could do the following:

    prompt: LIBS="-lposix -lsocket" ../dist/configure

In csh or tcsh, you could do the following:

    prompt: setenv LIBS "-lposix -lsocket"
    prompt: ../dist/configure

See your command shell's manual page for further information.

Prev | Up | Next
Building a small memory footprint library | Home | Cross-Compiling on Unix