[vox-tech] Compile Question

Bill Kendrick nbs at sonic.net
Fri Apr 8 12:14:27 PDT 2005


On Fri, Apr 08, 2005 at 11:52:16AM -0700, Bob Scofield wrote:
> I am trying to compile a program called "kiwi plugins" for another program 
> called "digikam."  When I execute ./compile I get this error message:

Do you mean "./configure"?


> "in the prefix, you've chosen, are no KDE headers installed.  This will fail."
> 
> I don't know what a prefix is, and don't know what prefix I have chosen.  Does 
> anybody have any advice for my next step?

A prefix, in this case, is typically something like "/usr/",
"/usr/local/", or "/opt/", and it would be where the compiler will eventually
look for header files and other support stuff (e.g., "/usr/include",
"/usr/local/include", etc., depending on the prefix.)


> >From what I've read on the web about compiling, my problems aren't supposed to 
> begin until I execute "make."  I guess I'm getting an early start.

Certainly not!  Problems can occur at any time! ;^) ;^)

The issue here is that the "configure" script (again, assuming that's
what you meant instead of "./compile") is looking for all of the appropriate
headers and other useful things that "make" and the compilers and linkers
will need when building and installing the thing you're trying to install.

What distro are you using?  I'll assume you installed KDE from packages,
and in that case, it's probably simply a matter of needing to install the
appropriate corresponding "development" packages.

Typically, packages for libraries such as those used in KDE and Gnome,
or my favorite, libSDL, are split into at least two parts.  One is the
actual compiled library that programs dynamically link to when they load.
("I am a KDE app... I need KDE libraries.  Oh, here they are! *chink!*")

When you install some KDE app, for example, it depends on the KDE libraries.
But, since you're not COMPILING it, there's no need (no 'dependency') for the
headers used when compiling that KDE app from scratch.  It's already built!
The distro's packagers/volunteers did it for you.

BUT, when you want to COMPILE something, you'll want the package that
contains all of the C header files and other little things needed when
compiling against that library.  ("I am about to compile a KDE app...
I need the headers for the KDE libraries.  Oh, here they are!  *#include!*")

;^)


(Another reason for the headers to be separate from the compiled objects
is they're typically architecture independent.  A text file, such as a
C header file, isn't going to be different on a Apple hardware versus
Intel hardware versus MIPS hardware.  The actual compiled objects most
certainly WILL!  So the packagers/volunteers keep their job easy and
reduce wasted space (by having less redundancy) by keeping only ONE copy
of the headers in their Linux distro, since all of the different hardware
architectures can share them.)


*Whew*!  I hope that made sense.  I'm mighty tired today. :)

Good luck!

-bill!
bill at newbreedsoftware.com         "I'm anticipating an all-out tactical
http://newbreedsoftware.com/      dog-fight, followed by a light dinner."

PS - For the technically curious... My Tux Paint app doesn't currently
use autotools (e.g., "configure" scripts, autoconf, etc.).  It does, however,
give a gentle hint about installing the "libSDL[*]-devel" packages if it
can't open (#include) the SDL header files (e.g. "SDL.h").  One of the most
frequently asked questions I've had from people trying to compile my SDL-based
games is "it can't find SDL.h, even though I installed the SDL package!"
Well, the SDL-devel pacakge is where SDL.h is found, so you need that, too!

I'm guessing a similar issue with KDE headers is what Bob's having...


More information about the vox-tech mailing list