[Interest] link error (and probably a dumb question)
René J. V. Bertin
rjvbertin at gmail.com
Fri Sep 18 20:34:56 CEST 2015
Thiago Macieira wrote:
> No. But note I am talking about a different persona. The user who doesn't
> develop will not care where the software is installed and about libraries. The
> developer, on the other hand, will care what libraries are and that they get
> installed properly.
Of course I had noticed that. But I'm not sure we're talking about an average
developer (Joe User average kind of average) who cares exactly where a
distribution puts libraries, rather than only about a reliable way to get them
installed and then find them in whatever build system s/he is using.
> /opt/local is not a system path.
No, but if you configure pkg-config to be installed under that prefix, it will look
under /opt/local and not under /usr/lib.
> The question is why you have dbus and glib in a non-standard path in your
> system in the first place.
Did I say I did? They're in the standard locations for an Ubuntu system.
> Not really. It sounds to me that the fault lies with you by installing a badly
> configured pkg-config in /opt/local/bin and by having that in $PATH ahead of
> the standard pkg-config.
It's not badly configured, it's configured with --prefix=/opt/local , see above.
Since it wasn't clear: I'm reusing the platform-agnostic parts of MacPorts build
and packaging scripts to install certain things in a parallel prefix. I'd use
pkgsrc or Gentoo Prefix, but the latter doesn't work on Ubuntu and the former
would require building all dependencies from scratch (and that would include a
pkgconfig configured just like mine from /opt/local/bin). The concept of those
systems is to be as self-contained as possible; I'm using my (by now) intimate
knowledge of MacPorts to allow packages to depend on system libraries where I
decide that's opportunistic.
> Then please stop talking about paths you don't have. You're the one who
> brought /usr/lib64 up. You're confusing me.
OK, but I was under the impression that it was you who mentioned that path first.
>> Hmmm, sounds like it's still a good idea to remove the multiarch paths from
>> DEFAULT_LIBDIRS for a Qt to be installed in a prefix like /opt/local .
>> Presuming only Qt installs .prl files, there best be no confusion between
>> versions.
>
> Does your linker search there by default? If so, why would you remove?
there = where? Now I'm confused :)
* I understand that qmake searches in /usr/lib/x86_64-linux-gnu if it's in
DEFAULT_LIBS and then might do clever things with information obtained from the
.prl files in that directory
* That could lead to unforeseen (and maybe inexplicable) effects if you want to
use the libs and corresponding .prl files from another library (/opt/local/lib)
=> does qmake somehow prioritise prls for the same library coming from different
directories?
* as far as I can deduce and as long as those locations aren't given explicitly
via -L, the Ubuntu ld searches in the multiarch directories when it hasn't found
a -l lib otherwise.
R.
More information about the Interest
mailing list