Difference between revisions of "Getting Started/Build/Windows/MS Visual Studio"

Jump to: navigation, search
m (Compile and Install)
(shared-mime-info is in installer)
Line 52: Line 52:
=== shared-mime-info ===
The shared-mime-info package, is the freedesktop MIME standard used now by KDE. Download update-mime-database-*.*-*-bin.zip from and unpack the archive to kde4/ directory to get share/mime/ directory and bin/update-mime-database.exe program.
== Build KDElibs ==
== Build KDElibs ==

Revision as of 14:55, 21 July 2007

Note: This page is about KDE 4. It isn't applicable for KDE 3 development.
This section needs improvements: Please help us to

cleanup confusing sections and fix sections which contain a todo

This page has been moved out of kdelibs.com wiki page.


Basic Tools


This is a program that lets you easily install all the requirements for building kdelibs. It also has a list of tools in its list that are helpful and needed, like the mingw compiler suite, subversion clients, debugging tools and so on.

The kdewin-installer is available in a GUI and console-only form from the kdewin-installer download page.

The Compiler

You can use either:

Express Edition users: If you want to generate project files for Visual C++ then you must add the Platform SDK include and library directory to the default directories of the IDE:

Open Visual C++, go to Tool->Options
in "Projects and Solutions" go to "VC++ Directories"

On the right add the paths to your Platform SDK files:
for "Library Files": YOUR_PLATFORM_SDK_PATH\lib
for "Include Files": YOUR_PLATFORM_SDK_PATH\include


CMake is the make tool used by KDE.

  • use the most recent binaries from here http://www.cmake.org/files/v2.4/ (the filename should be like cmake-2.4.?-win32-x86.zip; you can also pick an .exe file instead of .zip). Make sure you use at least cmake 2.4.5
  • or get CMake from CVS and compile it yourself

Install cmake in a path without spaces to avoid troubles (at least under win2k).


Perl is a script language used to generate files. Install a Perl for Windows, e.g. ActivePerl from http://www.activestate.com


win32libs contains a collection of libraries not available by default on Windows. See 3rd-party libraries required for KDElibs 4.

Compile and Install additional libraries

These libraries have to be installed:

D-Bus for Windows

This library shouldn't be installed with the installer, you should rather compile it yourself.

Qt 4

This Framework can be downloaded with the installer, or you can build it on your own.

KDESupport Libraries

There are several libraries which will be required for building kdelibs. You may want to compile them yourself or simply download them using the KDEWin-Installer. You will need:

  • kdewin32 (compiled with msvc)
  • strigi
  • soprano
  • qca2

Build KDElibs

Check out the sources and make another build directory at the same level as kdelibs:

cd {KDE_SOURCE_DIR}\trunk
svn up -N KDE
cd KDE
svn up kdelibs
mkdir kdelibs-build
cd kdelibs-build

Now you have to add some paths to your PATH environment variable simliar to this:

set PATH=%QTDIR%\bin;%PATH%;%PROGRAMFILES%\win32libs\lib;
         {location of your kdewin32 libs}\kdewin32\lib

Build KDE libraries with:

 -G"NMake Makefiles" ..\kdelibs
nmake install

or use the IDE:

 -G "Visual Studio 8 2005" ..\kdelibs

(use -G "Visual Studio 7 .NET 2003" for the older compiler)

In the latter case kdelibs.sln solution file will be created. Build and install the Debug and Release builds with the IDE. Tip: to do this from command line, type:

devenv /build Debug /project INSTALL kdelibs.sln
devenv /build Release /project INSTALL kdelibs.sln

To also build the test programs add the option -DKDE4_BUILD_TESTS=1 to the cmake command.


  • to enable the release build add -DCMAKE_BUILD_TYPE=Release to the cmake command
  • when kdewin32 is not found, try adding the cmake parameter (with YOUR path)-DGNUWIN32_DIR=c:/gnuwin32
  • don't use a cygwin or mingw shell, you will get errors because these shells use UNIX path names
  • you could restart the configure process by deleting CMakeCache.txt
  • you could test for only one library by deleting the assignment in CMakeCache.txt
  • ask for more help on kde-buildsystem@kde.org mailing list
  • whenever you update your checkout DON'T forget to rebuild AND reinstall kdewin32.lib

Going further: kdepimlibs

kdepimlibs are needed by kdebase or other modules like koffice.


kdepimlibs require:

  • boost libraries. Download the tarball. As boost is consisted of headers only, unpack the tarball and copy boost subdirectory to %KDEDIR%\include. Then add use set BOOST_ROOT=%KDEDIR%\include (you may want to add it to your environment.bat file as well).
  • (really optional for now) OpenLDAP: LDAP (Lightweight Directory Access Protocol) libraries Needed to provide LDAP functionality in KDE
  • (really optional for now) cyrus-sasl: Cyrus SASL API needed to support authentication of logins


Check out the sources, make another build directory and build:

svn up kdepimlibs
mkdir kdepimlibs-build
cd kdelibs-build
 -G"NMake Makefiles" ..\kdepimlibs
nmake install

Going further: kofficelibs

(work in progress, to be moved to KOffice wiki)

kofficelibs are needed for apps like KWord or Kexi.


kofficelibs require:

  • Little cms library. Download the newest lcms-1.??.zip from [1] and uncompress. To build it with msvc, go to Projects subdir and choose a subdir for your compiler (i.e. Vc7 or Vc2005).
    1. Then you will see lcms.sln solution file - you can click it to open in the msvc IDE. But first, you need to fix some paths in the project files. You probably have %KDEDIR%\lib\jpeg.lib, not libjpeg.lib, so edit tifficc.vcproj, tiffdiff.vcproj and jpegicc.vcproj and change libjpeg.lib to jpeg.lib in AdditionalDependencies variable. Then add full path to your %KDEDIR%\include directory (where tiffio.h resides) in AdditionalIncludeDirectories variable, (note: do it by expanding KDEDIR environment variable, i.e the result should be like:
      Then add AdditionalLibraryDirectories="c:\your\path\to\kde\lib" line just after every two occurences of AdditionalIncludeDirectories=. All the changes are presented in this pseudo-patch (change f:\ paths to your KDEDIR location!).
    2. You probbaly want to skip building Python wrapper, so click on Build->Configuration Manager menu command and check off "Build" in "Python" line.
    3. Select "Build Solution" menu command. After successful build, you should notice:Build: 9 succeeded, 0 failed, 1 skipped
    4. To also build Release versions of the binaries, in the Configuration Manager, change active configuration to Release and repeat steps 1-3.
    5. Copy the compiled binaries. From your lcms-1.??\Lib\Ms copy *.lib files to %KDEDIR%\lib. From lcms-1.??\bin copy *.dll and *.exe files to %KDEDIR%\bin.
    6. Copy lcms headers: from lcms-1.??\include copy *.h to %KDEDIR%\include.
    7. Later when you will run cmake for kofficelibs, you get message like -- Found lcms version 1.16, F:/kde4/lib/lcms.lib.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal