/usr/share/doc/libmpfr-doc/mpfr.html/Headers-and-Libraries.html is in libmpfr-doc 3.1.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual documents how to install and use the Multiple Precision
Floating-Point Reliable Library, version 3.1.2.
Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under
the terms of the GNU Free Documentation License, Version 1.2 or any later
version published by the Free Software Foundation; with no Invariant Sections,
with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the
license is included in GNU Free Documentation License. -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU MPFR 3.1.2: Headers and Libraries</title>
<meta name="description" content="How to install and use GNU MPFR, a library for reliable multiple precision
floating-point arithmetic, version 3.1.2.">
<meta name="keywords" content="GNU MPFR 3.1.2: Headers and Libraries">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="MPFR-Basics.html#MPFR-Basics" rel="up" title="MPFR Basics">
<link href="Nomenclature-and-Types.html#Nomenclature-and-Types" rel="next" title="Nomenclature and Types">
<link href="MPFR-Basics.html#MPFR-Basics" rel="previous" title="MPFR Basics">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Headers-and-Libraries"></a>
<div class="header">
<p>
Next: <a href="Nomenclature-and-Types.html#Nomenclature-and-Types" accesskey="n" rel="next">Nomenclature and Types</a>, Previous: <a href="MPFR-Basics.html#MPFR-Basics" accesskey="p" rel="previous">MPFR Basics</a>, Up: <a href="MPFR-Basics.html#MPFR-Basics" accesskey="u" rel="up">MPFR Basics</a> [<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Headers-and-Libraries-1"></a>
<h3 class="section">4.1 Headers and Libraries</h3>
<a name="index-mpfr_002eh"></a>
<p>All declarations needed to use MPFR are collected in the include file
<samp>mpfr.h</samp>. It is designed to work with both C and C++ compilers.
You should include that file in any program using the MPFR library:
</p>
<div class="example">
<pre class="example">#include <mpfr.h>
</pre></div>
<a name="index-stdio_002eh"></a>
<p>Note however that prototypes for MPFR functions with <code>FILE *</code> parameters
are provided only if <code><stdio.h></code> is included too (before <samp>mpfr.h</samp>):
</p>
<div class="example">
<pre class="example">#include <stdio.h>
#include <mpfr.h>
</pre></div>
<a name="index-stdarg_002eh"></a>
<p>Likewise <code><stdarg.h></code> (or <code><varargs.h></code>) is required for prototypes
with <code>va_list</code> parameters, such as <code>mpfr_vprintf</code>.
</p>
<a name="index-stdint_002eh"></a>
<a name="index-inttypes_002eh"></a>
<a name="index-intmax_005ft"></a>
<a name="index-uintmax_005ft"></a>
<p>And for any functions using <code>intmax_t</code>, you must include
<code><stdint.h></code> or <code><inttypes.h></code> before <samp>mpfr.h</samp>, to
allow <samp>mpfr.h</samp> to define prototypes for these functions. Moreover,
users of C++ compilers under some platforms may need to define
<code>MPFR_USE_INTMAX_T</code> (and should do it for portability) before
<samp>mpfr.h</samp> has been included; of course, it is possible to do that
on the command line, e.g., with <code>-DMPFR_USE_INTMAX_T</code>.
</p>
<p>Note: If <samp>mpfr.h</samp> and/or <samp>gmp.h</samp> (used by <samp>mpfr.h</samp>)
are included several times (possibly from another header file),
<code><stdio.h></code> and/or <code><stdarg.h></code> (or <code><varargs.h></code>)
should be included <strong>before the first inclusion</strong> of
<samp>mpfr.h</samp> or <samp>gmp.h</samp>. Alternatively, you can define
<code>MPFR_USE_FILE</code> (for MPFR I/O functions) and/or
<code>MPFR_USE_VA_LIST</code> (for MPFR functions with <code>va_list</code>
parameters) anywhere before the last inclusion of <samp>mpfr.h</samp>.
As a consequence, if your file is a public header that includes
<samp>mpfr.h</samp>, you need to use the latter method.
</p>
<p>When calling a MPFR macro, it is not allowed to have previously defined
a macro with the same name as some keywords (currently <code>do</code>,
<code>while</code> and <code>sizeof</code>).
</p>
<p>You can avoid the use of MPFR macros encapsulating functions by defining
the <code>MPFR_USE_NO_MACRO</code> macro before <samp>mpfr.h</samp> is included. In
general this should not be necessary, but this can be useful when debugging
user code: with some macros, the compiler may emit spurious warnings with
some warning options, and macros can prevent some prototype checking.
</p>
<a name="index-Libraries"></a>
<a name="index-Linking"></a>
<a name="index-libmpfr"></a>
<p>All programs using MPFR must link against both <samp>libmpfr</samp> and
<samp>libgmp</samp> libraries. On a typical Unix-like system this can be
done with ‘<samp>-lmpfr -lgmp</samp>’ (in that order), for example:
</p>
<div class="example">
<pre class="example">gcc myprogram.c -lmpfr -lgmp
</pre></div>
<a name="index-Libtool"></a>
<p>MPFR is built using Libtool and an application can use that to link if
desired, see <cite>GNU Libtool</cite>.
</p>
<p>If MPFR has been installed to a non-standard location, then it may be
necessary to set up environment variables such as ‘<samp>C_INCLUDE_PATH</samp>’
and ‘<samp>LIBRARY_PATH</samp>’, or use ‘<samp>-I</samp>’ and ‘<samp>-L</samp>’ compiler options,
in order to point to the right directories. For a shared library, it may
also be necessary to set up some sort of run-time library path (e.g.,
‘<samp>LD_LIBRARY_PATH</samp>’) on some systems. Please read the <samp>INSTALL</samp>
file for additional information.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Nomenclature-and-Types.html#Nomenclature-and-Types" accesskey="n" rel="next">Nomenclature and Types</a>, Previous: <a href="MPFR-Basics.html#MPFR-Basics" accesskey="p" rel="previous">MPFR Basics</a>, Up: <a href="MPFR-Basics.html#MPFR-Basics" accesskey="u" rel="up">MPFR Basics</a> [<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|