Error compiling kdebase 4.3
1i5t5.duncan at cox.net
Tue Aug 11 07:53:02 BST 2009
Juan Pablo Romero Méndez posted on Mon, 10 Aug 2009 22:06:36 -0500 as
> I'm compiling kdebase from kde 4.3. This error appears: ...
> error: invalid use of incomplete type ‘struct KWindowListMenu’
> It seems some library is missing, but which?
> My system:
> opensuse 11.1
> gcc 4.3.2
> qt 4.5.1
I saw the post a couple days ago, and there's a guy here with a sig
"Linux (Almost) from Scratch", that I thought could answer better than
I. He doesn't seem to have done so, and now you're asking again, so I'll
try to answer this time.
FWIW, I run Gentoo, which is generally entirely from source, so I compile
everything. However, it's the ebuild scripts that contain all the
dependency information, etc, so as long as they've gotten the ebuilds
right, we don't normally have to worry about dependencies and the like.
Also, Gentoo splits the big monolithic KDE packages (kdelibs as one big
package, kdebase as another, etc) up into little ones, each of which
extracts only the bits of the tarballed sources it needs, with
dependencies setup on the other bits of the split package as necessary.
Thus, it's not like we compile one huge kdebase package here, but rather,
a bunch of little pieces of it. That's why I thought the from-scratch guy
was more likely to be of direct help than I could be. However, maybe
I'll be able be of some help. We'll see.
First, let's see what (Gentoo split) package that belongs to (-f is full
regex filename search, so anything with "folderview" in the filename):
$ equery belongs -f folderview
* Searching for folderview ...
So, it looks like the plasma-apps package. Makes sense. That also tells
me that it's a library and where it's located (on Gentoo/~amd64 at least)
OK, now let's try readelf. Note that I use (among other LDFLAGS)
--as-needed, so this shouldn't include the "noise" in the form of unused
but marked as needed libraries that a lot of readelf listings would
include. Readelf output fed to grep and cut to strip away the
$ readelf --dynamic /usr/lib64/kde4/plasma_applet_folderview.so | \
grep NEEDED | cut --delimiter=[ --fields=2 | cut --delimiter=] --fields=1
OK, so those are the directly required dependencies as it was compiled
here. Note that some of those may be in earlier bits of kdebase, or in
kdelibs, if you're compiling the monolithic packages, not split packages
as Gentoo arranges.
OK, now feed that list into equery belongs (piped to cut and then to sort
$ equery b $(readelf --dynamic \
/usr/lib64/kde4/plasma_applet_folderview.so | \
grep NEEDED | cut --delimiter=[ --fields=2 | \
cut --delimiter=] --fields=1) | cut --fields=1 | sort --unique
So it's those (Gentoo) packages that contain the libraries listed above.
Note that on Gentoo, qt4 is split as well. All those qt packages are
therefore simply parts of qt4, with the dependency filled if you have it.
Of course, on a binary distribution, not only will you need the binary
packages, but for compiling, probably the -devel packages as well.
For the kde packages (besides kdelibs):
$ grep KMNAME /p/kde-base/libkonq/libkonq-4.3.0.ebuild
$ grep KMNAME /p/kde-base/libkworkspace/libkworkspace-4.3.0.ebuild
So the kde monolithic dependencies would be in the kdelibs, kdebase-apps,
and kdebase-workspace tarballs (the kdebase-* tarballs probably being
part of the same kdebase compile). Of course, it also needs glibc, as a c
++ app, it needs the libstdc++ from whatever gcc you're running, and as
an X app, it needs libX11.
Hopefully you can pull what you need out of something in there.
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
This message is from the kde mailing list.
Account management: https://mail.kde.org/mailman/listinfo/kde.
More info: http://www.kde.org/faq.html.
More information about the kde