All declarations needed to use GMP are collected in the include file gmp.h, except for the C++ Class Interface which comes with its own separate header gmpxx.h. gmp.h is designed to work with both C and C++ compilers.
#include <gmp.h>
Note however that prototypes for GMP functions with FILE *
parameters
are only provided if <stdio.h>
is included before.
#include <stdio.h> #include <gmp.h>
Likewise <stdarg.h>
is required for prototypes with va_list
parameters, such as gmp_vprintf
. And <obstack.h>
for prototypes
with struct obstack
parameters, such as gmp_obstack_printf
, when
available.
All programs using GMP must link against the libgmp library. On a typical Unix-like system this can be done with ‘-lgmp’, for example
gcc myprogram.c -lgmp
GMP C++ functions are in a separate libgmpxx library, including the C++ Class Interface but also C++ Formatted Output for regular GMP types. This is built and installed if C++ support has been enabled (see Build Options). For example,
g++ mycxxprog.cc -lgmpxx -lgmp
GMP is built using Libtool and an application can use that to link if desired, see GNU Libtool in GNU Libtool.
If GMP has been installed to a non-standard location then it may be necessary to use ‘-I’ and ‘-L’ compiler options to point to the right directories, and some sort of run-time path for a shared library.