| <refentry id="glib-compiling" revision="17 Jan 2002"> |
| <refmeta> |
| <refentrytitle>Compiling GLib Applications</refentrytitle> |
| <manvolnum>3</manvolnum> |
| <refmiscinfo>GLib Library</refmiscinfo> |
| </refmeta> |
| |
| <refnamediv> |
| <refname>Compiling GLib Applications</refname> |
| <refpurpose> |
| How to compile your GLib application |
| </refpurpose> |
| </refnamediv> |
| |
| <refsect1> |
| <title>Compiling GLib Applications on UNIX</title> |
| |
| <para> |
| To compile a GLib application, you need to tell the compiler where to |
| find the GLib header files and libraries. This is done with the |
| <application>pkg-config</application> utility. |
| </para> |
| <para> |
| The following interactive shell session demonstrates how |
| <application>pkg-config</application> is used (the actual output on |
| your system may be different): |
| <programlisting> |
| $ pkg-config --cflags glib-2.0 |
| -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include |
| $ pkg-config --libs glib-2.0 |
| -L/usr/lib -lm -lglib-2.0 |
| </programlisting> |
| </para> |
| <para> |
| If your application uses threads or <structname>GObject</structname> |
| features, it must be compiled and linked with the options returned by the |
| following <application>pkg-config</application> invocations: |
| <programlisting> |
| $ pkg-config --cflags --libs gthread-2.0 |
| $ pkg-config --cflags --libs gobject-2.0 |
| </programlisting> |
| </para> |
| <para> |
| If your application uses modules, it must be compiled and linked with the options |
| returned by one of the following <application>pkg-config</application> invocations: |
| <programlisting> |
| $ pkg-config --cflags --libs gmodule-no-export-2.0 |
| $ pkg-config --cflags --libs gmodule-2.0 |
| </programlisting> |
| The difference between the two is that gmodule-2.0 adds <option>--export-dynamic</option> |
| to the linker flags, which is often not needed. |
| </para> |
| <para> |
| The simplest way to compile a program is to use the "backticks" |
| feature of the shell. If you enclose a command in backticks |
| (<emphasis>not single quotes</emphasis>), then its output will be |
| substituted into the command line before execution. So to compile |
| a GLib Hello, World, you would type the following: |
| <programlisting> |
| $ cc `pkg-config --cflags --libs glib-2.0` hello.c -o hello |
| </programlisting> |
| </para> |
| |
| </refsect1> |
| |
| </refentry> |