|Tutorial Series||Getting Started|
|Previous||KDE SVN Quickstart Guide|
|What's Next||KDE SVN Quickstart Guide|
This page contains some troubleshooting tips for issues you may encounter while building kde4 from source.
Many of the issues listed here may be out of date.
If you have a problem building a KDE program, first find the exact place where it occurs. Instead of using
use a simple
to see the error message. If you do not understand the error message, use
to see the compile or link command that actually failed.
Also, when using kdesrc-build view the log files.
You may have to troubleshoot qt building too..
If you have problems compiling kdelibs, first make sure the software in the Required Software section above is installed and works. If you install additional software, it may be necessary to remove ~/kde/src/KDE/kdelibs/CMakeCache.txt before trying the build again. In particular, pay attention to the requirement of kdesupport (such as the components for automoc, strigi, phonon, etc).
Other possible hints include:
If cmakekde still gives the same error then try this
cd cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \ -DCMAKE_BUILD_TYPE=debugfull \ -DKDE4_BUILD_TESTS=ON \ ~/kde/src/KDE/kdelibs make make install
update-alternatives --config qmake
CMake Error: KDE Requires Qt to be built with SSL support
, install openssl-devel, remove CMakeCache.txt and re-compile QT.
kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()'it means you compiled Qt without Qt3 support(no, linking to a true Qt3 install won't work)
make cleanin kdelibs.
remove ../.. build/kdelibs cs KDE/kdelibs cmakekde
/Depot/Temp/kdelibs-4.0.2/kdecore/kde-config.cpp:197: undefined reference to `KConfigGroup::readPathEntry(char const*, QString const&) const' and kde-config.cpp:66: undefined reference to `ki18n(char const*)'? Seems to happen with some localization stuff
If you have troubles compiling kdebase:
-- Installing: /usr/share/polkit-1/actions/org.kde.kcontrol.kcmremotewidgets.policy CMake Error at plasma/remotewidgetshelper/cmake_install.cmake:54 (FILE): file INSTALL cannot copy file "/home/kde-devel/kde/build/kde-runtime/plasma/remotewidgetshelper/org.kde.kcontrol.kcmremotewidgets.policy" to "/usr/share/polkit-1/actions/org.kde.kcontrol.kcmremotewidgets.policy".
To resolve this issue either install kdesupport/polkit-qt and rebuild kdelibs and kdebase (remember to remove the CMakeCache.txt), or pass an extra parm to cmake for -DKDE4_AUTH_POLICY_FILES_INSTALL_DIR=$KDEDIR/share/polkit-1/actions
Please set the following variables: CLUCENE_LIBRARY_DIR (ADVANCED)
Make sure you have clucene installed and clucene-devel. If necessary, get the source from sourceforge and compile it. If you have SUSE and an x64 installation, you need to make cmake aware your library path is /usr/lib64, not /usr/lib. Do this with
cmake -DLIB_SUFFIX=64 .
make sure it has been set by calling
and delete the CMakeCache.txt in your build directory.
CMake Error at workspace/plasma/scriptengines/python/cmake_install.cmake:68 (FILE):
file INSTALL cannot copy file
Call Stack (most recent call first):
workspace/plasma/scriptengines/cmake_install.cmake:40 (INCLUDE) workspace/plasma/cmake_install.cmake:43 (INCLUDE) workspace/cmake_install.cmake:62 (INCLUDE) cmake_install.cmake:39 (INCLUDE)
try to set: -DPYTHON_SITE_PACKAGES_DIR=~/.local/lib/python2.6/site-packages (check that this path corresponds to something in your system, you might have a different version of python) as a parameter for cmake (or cmakekde)
If you have trouble compiling kdepimlibs:
cd cs mkdir kdesupport && cd kdesupport svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/automoc cd automoc cmakekde
cd cs cd kdesupport svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/akonadi cd akonadi cmakekde
If you are building and installing packages as a dedicated user, you may find that the installation of the python bindings fails because it can't install the necessary files in some system-wide directories. To resolve this, execute the following code as root:
KDE_DEVEL_USER=kde-devel mkdir -p /usr/share/sip/PyKDE4 for dir in /usr/lib/python*; do mkdir -p $dir/site-packages/PyKDE4 done chown $KDE_DEVEL_USER /usr/share/sip/PyKDE4 \ /usr/lib/python*/site-packages/PyKDE4
Note: You may need to change /usr/lib to /usr/lib64
Note: I had to use "dist-packages" instead of "site-packages" in the above
This will allow your development user to install the files it needs to, without giving it unnecessary access to your system.
KUniqueApplication: Cannot find the D-Bus session server
make sure you can access the display, e.g. type
then a clock must appear on the screen. If it does and the error persists, start your shell using
and start your program in there.
Error: standard icon theme "oxygen" not found! ASSERT: "!isEmpty()" in file /home/kde-devel/qt-copy/include/QtCore/../../src/corelib/tools/qlist.h, line 245 Aborted (core dumped)
You need to install kdebase - see above. It is enough to install the "runtime" directory from kdebase.
What can happen over time, after some svn up commands, is that some of the tools used in the KDE build chain change their output format. For example, kcfg files are read by kconfig_compiler to produce configuration dialogs. CMake cannot detect those changes, and the compilation might fail. A workaround is to always force a re-generation of all such files:
find $KDE_SRC/KDE/kdebase -name "*.kcfg" | xargs touch
The same applies to ui files as produced by Qt designer.
When installing KDE 4 as a user, one may be not able to unlock a locked session, depending on the system configuration.
If the problem are insufficient permissions of the kcheckpass binary, the fix is to run this:
chown root.root $KDEDIR/lib/kde4/libexec/kcheckpass
chmod 4755 $KDEDIR/lib/kde4/libexec/kcheckpass
Alternatively, if KDE is built with PAM (libpam-dev is installed while configuring kdebase), the problem may be a missing PAM service definition ("kde" by default) in the /etc/pam.d/ folder. The simplest fix is running "make install" in kdebase/workspace/ as root. Alternatively, one can copy the "login" service and possibly adjust it.
For example for RH/Fedora based distros:
auth include system-auth account include system-auth password include system-auth session include system-auth
while for debian/Kubuntu:
@include common-auth @include common-account @include common-session @include common-password
X headers like X.h are missing. They usually reside in /usr/include/X11/ or similar. Your distribution may contain them in a seperate package like X-devel. If the files are simply installed in a non-standard directory see configure --help.
When using SuSE, install xdevel from SuSE's "X" Series in YaST. On Caldera, Mandrake and Redhat the package is named XFree86-devel.
Do you have the currently required Qt library installed ? See "How to get the latest sources". Make sure that QTDIR is pointing to the correct location.
If you are using Solaris 2.6 and want to compile KDE as a normal user, please see this document first.
Well it's not new but better put it somewhere. Solaris X headers are buggy. They declare functions with no return type (assuming it defaults to int). You can get around by setting CXXFLAGS="-fpermissive" before ./configure to let g++ be okay with that.
Set LIBS="-lgcc -lstdc++ -Wl,-export-dynamic" while running configure, for all modules.
If you are using a recent version of Glib (version >= 2.9.1) and have built kdelibs using the configure option --enable-fast-malloc=full, you are likely to see aRts related crashes which output an error message on the terminal:
***MEMORY-ERROR***: [xxxx]: GSlice: failed to allocate 248 bytes (alignment: 256): Invalid argument
This is due to a clash in the way that arts/kdelibs and Glib handle memory allocation. There are two alternative solutions to this: one is to not use --enable-fast-malloc=full; the other is to set an environment variable for the KDE session