Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, February 9, 2022

glib-compile-resources (1)


glib-compile-resources - GLib resource compiler


glib-compile-resources [OPTION...] {FILE}


GLIB-COMPILE-RESOU(1)            User Commands           GLIB-COMPILE-RESOU(1)

       glib-compile-resources - GLib resource compiler

       glib-compile-resources [OPTION...] {FILE}

       glib-compile-resources reads the resource description from FILE and the
       files that it references and creates a binary resource bundle that is
       suitable for use with the GResource API. The resulting bundle is then
       written out as-is, or as C source for linking into an application.

       The XML resource files normally have the filename extension
       .gresource.xml. For a detailed description of the XML file format, see
       the GResource documentation.

       -h, --help
           Print help and exit

           Print program version and exit

           Store the compiled resources in the file TARGET. If not specified a
           filename based on the FILE basename is used.

           The files referenced in FILE are loaded from this directory. If not
           specified, the current directory is used.

           Write the output file in the format selected for by its filename

               C source

               C header

               resource bundle

           Instead of a writing the resource bundle in binary form create a C
           source file that contains the resource bundle. This can then be
           compiled into an application for easy access.

           Generate a header file for use with C code generated by

           Prints the list of files that the resource bundle references to
           standard output. This can be used to track dependencies in the
           build system. For example, the following make rule would mark
           test.gresource as depending on all the files that
           test.gresource.xml includes, so that is is automatically rebuilt if
           any of them change:

               test.gresource: test.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies test.gresource.xml)

           Note that this may or may not be portable to non-GNU make.

           Also see --dependency-file.

           Specify the prefix used for the C identifiers in the code generated
           by --generate-source and --generate-header.

           By default code generated by --generate-source uses automatic
           initialization of the resource. This works on most systems by using
           the compiler support for constructors. However, some (uncommon)
           compilers may not support this, you can then specify
           --manual-register, which will generate custom register and
           unregister functions that your code can manually call at
           initialization and uninitialization time.

           By default code generated by --generate-source declares all
           initialization functions as extern. So they are exported unless
           this is prevented by a link script or other means. Since libraries
           usually want to use the functions only internally it can be more
           useful to declare them as G_GNUC_INTERNAL which is what --internal

           By default code generated by --generate-source embeds the resource
           data as a string literal. When --external-data is given, the data
           is only declared in the generated C file, and the data has to be
           linked externally.

           Write dependencies in the same style as gcc -M -MF to the given
           file. If FILE is -, the dependencies are written to the standard
           output. Unlike --generate-dependencies, this option can be combined
           with other --generate options to generate dependencies as a
           side-effect of generating sources.

           When creating a dependency file with --dependency-file include
           phony targets in the same style as gcc -MP. This would typically be
           used with make.

           The full path to the xmllint executable. This is used to preprocess
           resources with the xml-stripblanks preprocessing option. If this
           environment variable is not set, xmllint is searched for in the

           The full path to the gdk-pixbuf-pixdata executable. This is used to
           preprocess resources with the to-pixdata preprocessing option. If
           this environment variable is not set, gdk-pixbuf-pixdata is
           searched for in the PATH.

           The full path to the json-glib-format executable. This is used to
           preprocess resources with the json-stripblanks preprocessing
           option. If this environment variable is not set, json-glib-format
           is searched for in the PATH.

       See attributes(7) for descriptions of the following attributes:

       |Availability   | library/glib2    |
       |Stability      | Uncommitted      |

       Source code for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-

       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from

       Further information about this software can be found on the open source
       community website at https://wiki.gnome.org/Projects/GLib/.

GIO                                                      GLIB-COMPILE-RESOU(1)