While building a dbus-example, I found that we need to add a pkg-config in gcc. For example:
gcc `pkg-config --cflags --libs dbus-1` <file_name> -o <file_name.out>
What is the significance of pkg-config --cflags --libs dbus-1
? what is pkg-config here? what is cflags extra here? what is --libs
here?
pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the correct compiler options on the command line so an application can use gcc -o test test. c `pkg-config --libs --cflags glib-2.0` for instance, rather than hard-coding values on where to find glib (or other libraries).
On most systems, pkg-config looks in /usr/lib/pkgconfig , /usr/share/pkgconfig , /usr/local/lib/pkgconfig and /usr/local/share/pkgconfig for these files. It will additionally look in the colon-separated (on Windows, semicolon-separated) list of directories specified by the PKG_CONFIG_PATH environment variable.
The packages. config file is used in some project types to maintain the list of packages referenced by the project. This allows NuGet to easily restore the project's dependencies when the project is to be transported to a different machine, such as a build server, without all those packages. If used, packages.
gcc `pkg-config --cflags --libs dbus-1` <file_name> -o <file_name.out>
will run the pkg-config
command, and pass its output as parameters to gcc.
The purpose of pkg-config
is to make linking against libraries much easier, as different operating systems and distributions require different compilation flags (aka CFLAGS
), library inclusion paths and libraries to link to. pkg-config
uses configuration files (defined by the libraries) to generate the above information for compilers, and allows us to not worry about what operating system or distribution the compilation takes place on.
--cflags
means the pkg-config
should give the compilation flags for the listed packages. --libs
means the pkg-config
should give the linking information for the listed packages.
and dbus-1
is the name of the package.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With