2.2 Building sources

If you want to compile a source file including the ‘gcrypt.h’ header
file, you must make sure that the compiler can find it in the
directory hierarchy. This is accomplished by adding the path to the
directory in which the header file is located to the compilers include
file search path (via the -I option).

However, the path to the include file is determined at the time the
source is configured. To solve this problem, Libgcrypt ships with a small
helper program libgcrypt-config that knows the path to the
include file and other configuration options. The options that need
to be added to the compiler invocation at compile time are output by
the --cflags option to libgcrypt-config. The following
example shows how it can be used at the command line:

gcc -c foo.c `libgcrypt-config --cflags`

Adding the output of ‘libgcrypt-config --cflags’ to the
compilerâs command line will ensure that the compiler can find the
Libgcrypt header file.

A similar problem occurs when linking the program with the library.
Again, the compiler has to find the library files. For this to work,
the path to the library files has to be added to the library search path
(via the -L option). For this, the option --libs to
libgcrypt-config can be used. For convenience, this option
also outputs all other options that are required to link the program
with the Libgcrypt libraries (in particular, the ‘-lgcrypt’
option). The example shows how to link foo.o with the Libgcrypt
library to a program foo.

gcc -o foo foo.o `libgcrypt-config --libs`

Of course you can also combine both examples to a single command by
specifying both options to libgcrypt-config: