Getting Started/Build/FAQ: Difference between revisions

From KDE TechBase
No edit summary
(Redirected page to Getting Started/Build)
 
(11 intermediate revisions by 7 users not shown)
Line 1: Line 1:
__TOC__
#REDIRECT [[Getting_Started/Build]]
KDE developers and users that like to stay on the "bleeding edge" often hit a compilation problem for which there is a known solution (for instance getting a new Qt snapshot). To reduce traffic on the lists, this page tries to answer the most common problems one can find when trying to compile the current development version of KDE. This doesn't apply to trying to compile previous releases or snapshots, nor does it list bugs.
 
==General Questions==
===How to get the latest sources?===
The recommended method is to use [http://developer.kde.org/source/anonsvn.html anonsvn] to get both KDE and Qt (from the module qt-copy). Alternatively, use snapshots : get Qt from [ftp://ftp.trolltech.com/qt/snapshots/ ftp.trolltech.com] and KDE from [ftp://ftp.kde.org/pub/kde/unstable/snapshots/ ftp.kde.org] and mirrors.
===What else do I need to compile KDE ?===
It depends on the version of KDE you want to compile.
====For KDE 4====
* [http://www.cmake.org/ CMake] 2.4.1 or later. The CMake-project already released CMake 2.4.3 which adds some features, so it might be that KDE will require a newer CMake in the future.
* A C++ compiler with support for exceptions. [http://gcc.gnu.org/ GCC] Version 3.3 or greater is preferred. GCC 2.95.x is not supported.
* Qt 4. KDE 4 is current tied to the next version of Qt to be released. You may use the qt-copy module to get a supported version of Qt 4.
* If you want SSL support (for instance, to support secure web sites in Konqueror), make sure you install [http://www.openssl.org/ OpenSSL], version 0.9.6 or later.
* Some free space on your hard disk and some time... :)
====For KDE 3====
* [ftp://ftp.gnu.org/pub/gnu/automake/ Automake] 1.5.0 and [ftp://ftp.gnu.org/pub/gnu/autoconf/ Autoconf] 2.53 or later
* a C++ compiler which supports exceptions (preferably [http://gcc.gnu.org/ GCC] 3.3. GCC 2.95.x will also work.)
* Qt 3.3.2 or later in the Qt 3 series.
* If you want SSL support (for instance, to support secure web sites in Konqueror), make sure you install [http://www.openssl.org/ OpenSSL], version 0.9.6 or later.
* Some free space on your hard disk and some time... :)
==Configure Errors==
===What is configure?===
'''configure''' is a shell script residing in each KDE package. Upon invocation it will gather some information about your system and prepare a '''Makefile''' in each directory. It is no longer used starting with KDE 4.
===can not guess host type; you must specify one===
'''configure''' uses the '''config.guess''' script in the '''admin''' directory to determine your host type. '''config.guess''' expects the C compiler to be called cc, though. If your compiler is named differently you can either specify your compiler via the environment variable '''CC''' or create a symbolic link (e.g. '''ln -s /usr/local/bin/egcs /usr/local/bin/cc'''). Of course, in the latter example you should make sure that '''/usr/local/bin''' is in your '''PATH''' in the first place.
===Can't find X includes===
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'''.
 
===cannot find -lXext===
When using SuSE, install xdevel from SuSE's "X" Series in YaST. On Caldera, Mandrake and Redhat the package is named XFree86-devel.
===configure in kdesupport gives: Header string not found===
Install libstdc++-devel.
===Qt [....] not found.===
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.
==Some other common problems==
If you are using Solaris 2.6 and want to compile KDE as a normal user, please see [http://developer.kde.org/build/solariscompile.html this document] first.
===(Solaris) ANSI C++ forbids declaration `XSetTransientForHint' with no type===
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.
===(BSD) Shared libraries are not correctly built, konqueror crashes with "Undefined symbol __eh_rtime_match"===
Set '''LIBS="-lgcc -lstdc++ -Wl,-export-dynamic"''' while running configure, for all modules.
 
==See also==
http://wiki.kde.org/ErrorMessages

Latest revision as of 16:32, 20 March 2011