man > pkg-config(1)

⚡ TLDR: pkg-config (tldr-pages)

Provide the details of installed libraries for compiling applications.

  • Get the list of libraries and their dependencies
    pkg-config --libs {{library1 library2 ...}}
  • Get the list of libraries, their dependencies, and proper cflags for gcc
    pkg-config --cflags --libs {{library1 library2 ...}}
  • Print the version of the linked modules
    pkg-config --modversion {{module1 module2 ...}}
  • Compile your code with libgtk-3, libwebkit2gtk-4.0, and all their dependencies
    c++ example.cpp $(pkg-config --cflags --libs gtk+-3.0 webkit2gtk-4.0) -o example
PKGCONF(1)                             General Commands Manual                            PKGCONF(1)

NAME
       pkgconf — a system for configuring build dependency information

SYNOPSIS
       pkgconf [options] [list of modules]

DESCRIPTION
       pkgconf  is  a program which helps to configure compiler and linker flags for development li‐
       braries.  This allows build systems to detect other dependencies and use them with the system
       toolchain.

GENERAL OPTIONS
       --version
               Display the supported pkg-config version and exit.

       --atleast-pkgconfig-version=VERSION
               Exit with error if we do not support the requested pkg-config version.

       --errors-to-stdout
               Print all errors on the main output stream instead of the error output stream.

       --silence-errors
               Do not display any errors at all.

       --list-all
               Walk all directories listed in the PKG_CONFIG_PATH environmental variable and display
               information on packages which have registered information there.

       --simulate
               Simulates resolving a dependency graph based on the requested modules on the  command
               line.  Dumps a series of trees denoting pkgconf's resolver state.

       --no-cache
               Skip  caching packages when they are loaded into the internal resolver.  This may re‐
               sult in an alternate dependency graph being computed.

       --ignore-conflicts
               Ignore ‘Conflicts’ rules in modules.

       --env-only
               Learn about pkgconf's configuration strictly from environmental variables.

       --validate package ...
               Validate specific ‘.pc’ files for correctness.

       --maximum-traverse-depth=DEPTH
               Impose a limit on the allowed depth in the dependency graph.  For example, a depth of
               2 will restrict the resolver from acting on child dependencies of  modules  added  to
               the resolver's solution.

       --static
               Compute  a  deeper dependency graph and use compiler/linker flags intended for static
               linking.

       --shared
               Compute a simple dependency graph that is only suitable for shared linking.

       --pure  Treats the computed dependency graph as if it were pure.  This is mainly intended for
               use with the --static flag.

       --no-provides
               Ignore ‘Provides’ rules in modules when resolving dependencies.

       --with-path=PATH
               Adds a new module search path to pkgconf's dependency resolver.  Paths added in  this
               way are given preference before other paths.

       --define-prefix
               Attempts  to  determine  the prefix variable to use for CFLAGS and LIBS entry reloca‐
               tions.  This is mainly useful for platforms where  framework  SDKs  are  relocatable,
               such as Windows.

       --dont-define-prefix
               Disables the ‘define-prefix’ feature.

       --prefix-variable=VARIABLE
               Sets the ‘prefix’ variable used by the ‘define-prefix’ feature.

       --relocate=PATH
               Relocates  a  path  using  the pkgconf_path_relocate API.  This is mainly used by the
               testsuite to provide a guaranteed interface to the system's path relocation backend.

       --dont-relocate-paths
               Disables the path relocation feature.

MODULE-SPECIFIC OPTIONS
       --atleast-version=VERSION
               Exit with error if a module's version is less than the specified version.

       --exact-version=VERSION
               Exit with error if a module's version is not exactly the specified version.

       --max-version=VERSION
               Exit with error if a module's version is greater than the specified version.

       --exists
               Exit with a non-zero result if the dependency resolver was unable to find all of  the
               requested modules.

       --uninstalled
               Exit  with  a non-zero result if the dependency resolver uses an ‘uninstalled’ module
               as part of its solution.

       --no-uninstalled
               Forbids the dependency resolver from considering 'uninstalled' modules as part  of  a
               solution.

QUERY-SPECIFIC OPTIONS
       --cflags, --cflags-only-I, --cflags-only-other
               Display either all CFLAGS, only -I CFLAGS or only CFLAGS that are not -I.

       --libs, --libs-only-L, --libs-only-l, --libs-only-other
               Display  either  all linker flags, only -L linker flags, only -l linker flags or only
               linker flags that are not -L or -l.

       --keep-system-cflags, --keep-system-libs
               Keep CFLAGS or linker flag fragments that would be filtered due to being included  by
               default in the compiler.

       --define-variable=VARNAME=VALUE
               Define  VARNAME  as VALUE.  Variables are used in query output, and some modules' re‐
               sults may change based on the presence of a variable definition.

       --print-variables
               Print all seen variables for a module to the output channel.

       --print-provides
               Print all relevant ‘Provides’ entries for a module to the output channel.

       --variable=VARNAME
               Print the value of VARNAME.

       --print-requires, --print-requires-private
               Print the modules included in either  the  Requires  field  or  the  Requires.private
               field.

       --digraph
               Dump  the  dependency resolver's solution as a graphviz ‘dot’ file.  This can be used
               with graphviz to visualize module interdependencies.

       --path  Display the filenames of the ‘.pc’ files used by the dependency resolver for a  given
               dependency set.

       --env=VARNAME
               Print the requested values as variable declarations in a similar format as the env(1)
               command.

       --fragment-filter=TYPES
               Filter the fragment lists for the specified types.

       --modversion
               Print the version of the queried module.

ENVIRONMENT
       PKG_CONFIG_PATH
               List of secondary directories where ‘.pc’ files are looked up.

       PKG_CONFIG_LIBDIR
               List of primary directories where ‘.pc’ files are looked up.

       PKG_CONFIG_SYSROOT_DIR
               ‘sysroot’  directory,  will  be  prepended  to every path defined in PKG_CONFIG_PATH.
               Useful for cross compilation.

       PKG_CONFIG_TOP_BUILD_DIR
               Provides an alternative setting for the ‘pc_top_builddir’ global variable.

       PKG_CONFIG_PURE_DEPGRAPH
               If set, enables the same behaviour as the --pure flag.

       PKG_CONFIG_SYSTEM_INCLUDE_PATH
               List of paths that are considered system include paths by the toolchain.  This  is  a
               pkgconf-specific extension.

       PKG_CONFIG_SYSTEM_LIBRARY_PATH
               List  of  paths that are considered system library paths by the toolchain.  This is a
               pkgconf-specific extension.

       PKG_CONFIG_DISABLE_UNINSTALLED
               If set, enables the same behaviour as the --no-uninstalled flag.

       PKG_CONFIG_LOG
               ‘logfile’ which is used for dumping audit  information  concerning  installed  module
               versions.

       PKG_CONFIG_DEBUG_SPEW
               If  set,  enables  additional debug logging.  The format of the debug log messages is
               implementation-specific.

       PKG_CONFIG_DONT_RELOCATE_PATHS
               If set, disables the path relocation feature.

       PKG_CONFIG_MSVC_SYNTAX
               If set, uses MSVC syntax for fragments.

       PKG_CONFIG_FDO_SYSROOT_RULES
               If set, follow the sysroot prefixing rules that freedesktop.org pkg-config uses.

       DESTDIR
               If set to PKG_CONFIG_SYSROOT_DIR, assume that PKG_CONFIG_FDO_SYSROOT_RULES is set.

EXAMPLES
       Displaying the CFLAGS of a package:
             $ pkgconf --cflags foo
             -fPIC -I/usr/include/foo

SEE ALSO
       pc(5), pkg.m4(7)

Debian                                    November 15, 2016                               PKGCONF(1)
pkg-config(1) □✕
NAME SYNOPSIS DESCRIPTION GENERAL OPTIONS
--version --errors-to-stdout --silence-errors --list-all --simulate --no-cache --ignore-conflicts --env-only --static --shared --no-provides --define-prefix --dont-define-prefix --dont-relocate-paths
MODULE-SPECIFIC OPTIONS
--exists --uninstalled --no-uninstalled
QUERY-SPECIFIC OPTIONS
--print-variables --print-provides --digraph --modversion
ENVIRONMENT EXAMPLES SEE ALSO

Generated by phpman v4.12.13 · Markdown · JSON Author: Che Dong Under GNU General Public License
2026-10-28 00:07 @216.73.217.95
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!

^_top_^