Linux glib needs pkg-config and pkg-config needs glib?

Peter picture Peter · Sep 4, 2012 · Viewed 34.5k times · Source

I try to install udev. And udev gives me an error during the ./configure

--exists: command not found configure: error:
pkg-config and "glib-2.0 >= 2.16" not found, please set GLIB_CFLAGS and GLIB_LIBS
to the correct values or pass --with-internal-glib to configure 

Ok, pkg-config and glib-2.0 is missing.

At first I tried to install pkg-config. I got this message:

checking whether to list both direct and indirect dependencies... no
checking for Win32... no
checking if internal glib should be used... no
checking for pkg-config... no
./configure: line 13557: --exists: command not found
configure: error: pkg-config and "glib-2.0 >= 2.16" not found,
please set GLIB_CFLAGS and GLIB_LIBS to the correct values or 
pass --with-internal-glib to configure

Ok I interpret, that glib is missing.

Next step installing Glib.

And I got this message:

configure: error: in `/root/glib-2.33.3':
configure: error: The pkg-config script could not be found or is too old.  Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.

Alternatively, you may set the environment variables LIBFFI_CFLAGS
and LIBFFI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

But I'm puzzled now. Do they need each other? What is my mistake?

Answer

user1202136 picture user1202136 · Sep 4, 2012

As you have already observed, there is indeed a circular dependency between pkg-config and glib. To break it, pkg-config's source code includes a version of glib, which is enough to compile it. This should break the dependency cycle.

Try configuring pkg-config with --with-internal-glib.