[Interest] link error (and probably a dumb question)

René J. V. Bertin rjvbertin at gmail.com
Thu Sep 17 16:08:49 CEST 2015


Thiago Macieira wrote:


> Find out which variable(s) contains that in mkspecs/*.pri.
> 
> My guess is you're going to find it on variable QT_LIBS_GLIB and the other
> glib-based libraries. If that is it, please check whether the following
> command also produces -L/usr/lib/x86_64-linux-gnu:

In qmodule.pri : 
QT_LFLAGS_SQLITE   = -L/usr/lib/x86_64-linux-gnu -lsqlite3 
QT_LIBS_DBUS = -L/usr/lib/x86_64-linux-gnu -ldbus-1 
QT_CFLAGS_DBUS = -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-
gnu/dbus-1.0/include 
QT_HOST_CFLAGS_DBUS = -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-
gnu/dbus-1.0/include 
QT_CFLAGS_GLIB = -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-
gnu/glib-2.0/include 
QT_LIBS_GLIB = -L/usr/lib/x86_64-linux-gnu -lgthread-2.0 -pthread -lglib-2.0 
QT_CFLAGS_PULSEAUDIO = -D_REENTRANT -I/usr/include/glib-2.0 -I/usr/lib/x86_64-
linux-gnu/glib-2.0/include 
QT_LIBS_PULSEAUDIO = -L/usr/lib/x86_64-linux-gnu -lpulse-mainloop-glib -lpulse -
lglib-2.0 
QMAKE_LIBS_FONTCONFIG = -L/usr/lib/x86_64-linux-gnu -lfontconfig -lfreetype 
QMAKE_LIBS_LIBUDEV = -L/usr/lib/x86_64-linux-gnu -ludev 
QMAKE_LIBS_XKBCOMMON_EVDEV = -L/usr/lib/x86_64-linux-gnu -lxkbcommon 

> 
> pkg-config --libs glib-2.0
> 
> If it does, please file a bug against your distribution's pkg-config. It's

Nope. Grepping the path on -R /usr/lib/pkgconfig confirms that no packages make 
this error. However, there's also /usr/lib/x86_64-linux-gnu/pkgconfig, and the 
files in there do contain the -L setting. I think that stands to reason.
I don't know exactly how pkg-config is configured, but the command shown above 
someone finds .pc files that are in the arch-specific pkgconfig dir, and strips the 
-L setting.

It appears that my error was to use the pkg-config from my /opt/local prefix and 
teach that one to look in the system dirs using PKG_CONFIG_PATH . When I do the 
opposite, use the system pkgconfig and tell it to search /opt/local/lib/pkgconfig 
first, I do not get the unwanted -L setting, AND stuff from /opt/local still gets 
priority as I'd want.

That notwithstanding, I think there's an issue in your configure script that 
causes this because I suppose it too "should never list the -L for default 
library search paths", no? There's the awk script that sets DEFAULT_LIBDIRS and 
DEFAULT_INCDIRS in a way that adds the arch-specific lib and include directories. 
I added a couple of sed expressions that get rid of the unwanted libraries 
(which may have helped get rid of my issue), is that something to suggest via a 
bug report?

Thanks for helping me find the issue in any case!

R.




More information about the Interest mailing list