Getting Started/Set up KDE 4 for development (ca)

Jump to: navigation, search
Configurar KDE 4 per al desenvolupament
Sèrie de Tutorials   Començant
Prerequisits   Compilant KDE 4
Què ve després   Altres temes de desenvolupament
Referències   n/a
{{{3}}}
 
noframe
Aquesta plana assumeix que ha compilat kdelibs, kdepimlibs, i kdebase d'acord amb aquestes instructions
Nota


Contents

Executant aplicacions i sessions de KDE 4

Quan comences el desenvolupament per a KDE 4, hi ha generalment tres opcions a triar:

Totes tres opcions són explicades a les seccions següents.

{{{3}}}
 
noframe

Si obtens errors quan executis qualsevol aplicació kde4, com ara:

 Qt: Session management error: Could not open network socket
 QMutex::lock: Deadlock detected in thread -1241241936 

o quan executis startkde i es quedi penjat, llegeix aquest article per a solventar-ho.

Nota


Executants aplicacions KDE 4

Emprant la shell normal amb sux

Per aquest mètode, es requereix l'eina sux (http://fgouget.free.fr/sux/sux-readme.shtml). sux està disponible a la majoria de distribucions. Sinó pots emprar el mètode de sota shell normal sense sux. sux et permet canviar a un altre usuari amb una gestió implicita dels detalls de forward de les X (exportació d'authentificació i DISPLAY) d'una manera neta i simple.

Per a loguejar, escriu
sux - kde-devel
Totes les variables d'entorn i tota la resta hauria d'establir-se correctament al teu .bashrc. Per a iniciar una aplicació, senzillament escriu el seu nom; per exemple
kwrite
{{{3}}}
 
noframe

Si obtens errors sobre mimetypes que manquen o així, prova el següent:

  • executa
    unset XDG_DATA_DIRS ; kbuildsycoca4
Nota


Emprant la shell normal sense sux

El mètode més simple per a executar apliacions KDE 4 és emprar su per a loguejar com a l'usuari kde-devel i llavors senzillament iniciar qualsevol aplicació KDE 4 des de la línia de ocmandes. Per a loguejar-te, escriu

su - kde-devel

i llavors, després d'entrar la teva clau d'accés

export DISPLAY=:0
{{{3}}}
 
noframe
Exportant la variable DISPLAY és necessari per a que les aplicacions KDE 4 apareguin el teu escriptori KDE 3.
Nota


Totes les variables d'entorn i tota la resta hauria de ser establert correctament per el teu .bashrc. Per iniciar una aplicació, senzillament escriu el seu nom; per exemple
kwrite
{{{3}}}
 
noframe

Si obtens errors sobre mimetypes que manquen o així, prova el següent:

  • executa
    unset XDG_DATA_DIRS ; kbuildsycoca4
Nota


{{{3}}}
 
noframe

Si obtens un error sobre que no es pot connectar al servidor d'X, assegura't d'executar

sudo xhost +local:kde-devel

com al teu usuari regular de KDE 3 per a assecurar que la aplicació pot connectar a la teva sessió d'X actual.

Tot i que el teu servidor d'X hauria d'acceptar les connexions TCP entrants, això és sovint desactivat per defecte a les distribucions (com ara a Kubuntu Feisty). Llavors emprant kdm has d'editar /etc/kde3/kdm/kdmrc com a root i assegurar-te que no conté:

ServerArgsLocal=-nolisten tcp

Una vegada hagis arreglat això, necessitaràs reiniciar el teu servidor d'X. La comanda xhost ja no hauria de retornarun error "unable to open display".

Per conveniència, haurias de posar això a l'Autostart del teu usuari regular. Per fer això, crea un nou fitxer al directori $HOME/.kde/Autostart del teu usuari regular amb el contingut següent:

#! /bin/sh
xhost +local:kde-devel

Assegura't de que el nou fitxer és executable emprant chmod +x en ell.

Si vol saber més dels problemes de segueretat en relació a emprar xhost, mira aquest article

Nota


Emprant SSH

La manera més simple d'executar una aplicació KDE 4 amb SSH en el teu entorn d'escriptor actual és obtindre una consola de shell conscient de les X com a l'usuari kde-devel d'aquesta manera:

ssh -X kde-devel@localhost

Ara pots executar aplicacions KDE com sempre, per exemple:

kwrite

Les dues línies poden ser combinades convenientment:

ssh -X kde-devel@localhost kwrite
{{{3}}}
 
noframe

Si això et dona qualsevol error, prova els consells per a problemes de la secció de sobre.

Nota


Identificació sense clau d'accés

Abans que es pugui fer res seriòs amb aquest mètode, es necessita configurar un loguin sense clau d'accés. Per començar, executa la següent comanda com a l'usuari regular de l'escriptori:

ssh-keygen -t rsa

Prem enter tres vegades i accpeta la ruta de ~/.ssh/id_rsa i una clau d'accés buida. Ara, copia la línia a ~/.ssh/id_rsa.pub que ha sortit deprés d'executar aquesta comanda:

cat ~/.ssh/id_rsa.pub

Després de copiar aquesta línia, ssh de nou a l'usuari kde-devel i posa la línia copiada al fitxer $HOME/.ssh/authorized_keys:

ssh -X kde-devel@localhost $HOME/kde/bin/kwrite \
 $HOME/.ssh/authorized_keys

Copia la línia, guarda el fitxer, i tanca KWrite. Ara prova d'executar KWrite de nou amb la mateixa comanda SSH; ja no hauries d'haver d'entrar cap clau d'accés:

ssh -X kde-devel@localhost $HOME/kde/bin/kwrite
{{{3}}}
 
noframe
Emprant un login SSH sense clau d'accés té cert risc de seguretat, així que assegura't de protegir el teu fitxer ~/.ssh/id_rsa restringint-ne l'accés amb
chmod og-xrw ~/.ssh/id_rsa
(tot i que el fitxer hauria de tenir aquests permissos quan és creat)
Avís


El fitxer d'escriptori SSH

Si vols poder llençar aplicacions més fàcilment que executar-les amb una comanda SSH des de la consola, una manera de fe-rho és crear arxius .desktop que fan ssh a l'atre compta.

{{{3}}}
 
noframe
Això només serà útil si el teu entorn d'escriptori suporta fitxers .desktop, però al menys KDE i GNOME ho fan.
Nota


Pots començar amb un fitxer .desktop existent com a plantilla (com la del teu escriptori) o pots fer-ne un de nou des de zero. La idea principal és prefixar la comanda executada amb aquesta cadena:

ssh -X kde-devel@localhost $HOME/kde/bin/

Un fitxer .desktop senzill que executa KWrite contindria el següent:

[Desktop Entry]
Categories=Qt;KDE;TextEditor;
Comment=
DocPath=kwrite/index.html
Encoding=UTF-8
Exec=ssh -X kde-devel@localhost /home/kde-devel/kde/bin/kwrite %U
GenericName=Text Editor
Icon=kwrite
InitialPreference=8
MimeType=text/plain
Name=KWrite (kde-devel)
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-StartupType=Multi
X-DCOP-ServiceType=non
X-KDE-StartupNotify=true
X-KDE-SubstituteUID=false
X-KDE-Username=


{{{3}}}
 
noframe
Les aplicacions llençades emprat SSH d'aquesta manera no retornen les respostes de llençament correctes, així que provablement voldràs desactivar "launch feedback" als teus fitxers .desktop
Consell


{{{3}}}
 
noframe
Per tal de crear un fitxer .desktop per a una aplicació KDE 4 emprant aquest mètode, el paquet de l'aplicació haurà d'estar instal·lat a ~/kde/bin emprant la comanda cmakekde
Nota


Arrencant sessions KDE 4

Sessions KDE 4 anidades

Anidada

En comptes d'emprar una nova X virtual completa per a desenvolupar sofware pots anidar la teva sessió KDE 4 en el teu entorn KDE 3 o qualsevol altre entorn X11.

Pots també fer això amb xnest, però com que xnest no pot fer anar extensions com ara Render molta gent prefereix Xephyr.

Si vols una sessió KDE mínim engegada i funcionant, només llença Xephyr (disponible a Kubuntu com a xserver-xephyr; Els usuaris de Gentoo compilen x11-base/xorg-server amb USE="kdrive"):

Xephyr :1 -extension GLX &

Ara pots arrencar KDE:

export DISPLAY=:1
/path/to/kde4/bin/startkde-modified &

startkde-modified és una còpia de startkde-script que inclou les següents línies al cap d'amunt:

export KDEDIR=`kde4-config --prefix`
export LD_LIBRARY_PATH=$KDEDIR/lib
export PATH=$KDEDIR/bin/:$PATH
export KDEHOME=~/.kde4

Pots també emprar Xephyr amb KDM mitjançant el protocol Xdmcp i senzillament una nova sessió a KDM.

A Kubuntu, pots activar-ho canviant

[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=false

in /etc/kde3/kdm/kdmrc to

[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=true

I ajustar el teu /etc/kde3/kdm/Xaccess per a permetre a la teva màquina local accedir. Addicionalment hauries d'assegurar-te de configurar una política de bloqueix de ports a totes les interfícies externes per al port Xdmcp si estàs fent aio en un portàtil o en un PC en un entorn no confiable.

Si ja estàs, senzillament executa Xephyr:

Xephyr -query localhost :1 -host-cursor -screen 1024x768&

On -host-cursor prova de reutilitzar el cursor del host i -screen determina les dimensions de la pantalla.

{{{3}}}
 
noframe
Si reps molts errors de connexió refusada, pots voler emprar l'opció -ac a Xephyr. Per exemple:
Xephyr -ac :1&

Una altre opció a provar si reps molt errors de connexió refusada és mirar si necessites donar permissos al teu usuari kde-devel al teu servidor X. Com a root o emprant sudo executa:

xhost +local:kde-devel

Si no tens Xephyr, pots també emprar Xnest:

Xnest -ac :1& export DISPLAY=:1
Nota




{{{3}}}
 
noframe

Aquesta secció necessita millores: Si us plau ajuda'ns a netejar les seccións confuses i a arreglar seccions que contenen coses a fer (todo).


Avís


Sping 00:25, 9 April 2007 (CEST)
Jo utilitzo això per al meu script d'inici nested_kde4.sh:

#! /bin/bash
NESTED_KDE_DISPLAY_BACKUP=$DISPLAY
export DISPLAY=:0
Xephyr :1 -screen 1024x768 &
export DISPLAY=:1
$HOME/kde/bin/startkde-modified &
export DISPLAY=${NESTED_KDE_DISPLAY_BACKUP}

Si et trobes amb

"Call to lnusertemp failed (temporary directories full?).
 Check your installation."

prova això:

mkdir /var/tmp/kde-devel-kde4

El codi de sobre assumeix que treballes amb l'usuari kde-devel.

{{{3}}}
 
noframe
En la majoria de casos has de substituir startkde-modified per startkde
Nota



Sessió KDE 4 en solitari

Solitari

Per a executar un entorn d'escriptori KDE 4 complet, pots iniciar-lo des de la consola com ho faries normalment, amb una cosa com aquesta:

X :1 & export DISPLAY=:1
startkde
{{{3}}}
 
noframe
Si el servidor X refusa la connexió dient una cosa com: Xlib: connection to ":1.0" refused by server, prova X -ac :1.
Nota


o pots afegir-ho al teu gestor de sessió. Si estàs emprant KDM (o un gestor de sessió compatible) això es fa creant un fitxer .desktop tant a `kde-config --prefix`/share/apps/kdm/sessions/ o a /usr/share/xsessions/. El més fàcil de fer és copiar un fitxer kde.desktop existent i renombrar-lo a kde4.desktop. Obre aquest nou fitxer .desktop en un editor de text i canvia les entrades Exec, TryExec i Name per a que siguin de la següent manera:

Exec=$HOME/kde/bin/startkde
TryExec=$HOME/kde/bin/startkde
Name=KDE4

Substitueix $HOME/kde a l'exemple de sobre amb el prefixe d'on estàs instal·lant KDE4.

Després de reiniciar el gestor de sessió (Alt+e a KDM) aquesta nova entrada hauria d'apareixer al menú de sessions.

Pots haver d'editar els teus scripts startkde, pe: canivar això

kdehome=$HOME/.kde

a això

kdehome=$HOME/.kde4

o enganxar això

export KDEDIR=`kde4-config --prefix`
export LD_LIBRARY_PATH=$KDEDIR/lib
export PATH=$KDEDIR/bin/:$PATH
export KDEHOME=~/.kde4

al cap d'amunt.

{{{3}}}
 
noframe
Hauries de tenir la ruta al programa 'qdbus' (normalment és a $QTDIR/bin) al teu $PATH per a loguejar-te correctament. Si no és allí, rebràs un missatge d'error "Could not start DBus. Check your installation."
Nota


Tasques de desenvolupament

KDevelop

Aquesta secció t'explicacarà com emprar KDevelop 3.4 per a desenvolupar aplicacions KDE 4. Si tens cap dubte, correccions o queixes sobre aquesta secció, si us plau posa-les a la plana de discusió.

Prerequisits

Necessites al menys KDevelop 3.4 per fer això, el qual encara és una aplicació KDE 3. Versions inferiors a la 3.4 no tindràn suport per a Qt 4 entre d'altres coses. La versió de KDE 4 de KDevelop encara no està llesta per al desenvolupament seriòs. Pots obtindre KDevelop de la plana de KDevelop. Assegura't d'instal·lar KDevelop com tota la resta d'aplicacions KDE 3, no com amb el teu usuari kde-devel.

També necessites la darrera versió de GDB , que actualment és la 6.6.0.

{{{3}}}
 
noframe
La versió de GDB que té openSuse 10.3 no funciona, peta continuament quan examina variables (cosa que KDevelop fa automàticament). Empra la versió de GDB d'aquest repositori en el seu lloc.
Nota


Necessitaràs tenir la documentació de l'API de kdelibs localment, que es descriu a instruccions de compliació.

També necessites ctags, htdig, htmerge i htsearch. valgrind i callgrind també poden ser útils.

Assegura't que has seguit els passos de les instructions de compilació de KDE 4 i tens un entorn de treball KDE 4 funcional. Assegura't que aplicacions senzilles de KDE 4 com ara Konsole o KWrite poden ser iniciades des de la linia de ocmandes per l'usuari kde-devel sense problemes.

Els següents passos es fan tots amb l'usuari kde-devel. Necessites loguejar-te com aquest usuari escrivint

su - kde-devel

Configurant l'entorn

KDevelop no té suport natiu per als projectes CMake. Afortunadament, CMake té l'abilitat de generar fitxers de projecte KDevelop ell mateix. Per tal de fer aio, necessites passar el paràmetre -GKDevelop3 a la comanda cmake. Això li diu a CMake que generi els fitxers de projecte per a KDevelop juntament amb els makefiles normals. La millor manera de fer això és modificar la teva cmakekde al teu fitxer .bashrc. Només canvia

cmake $srcFolder -DCMAKE_INSTALL_PREFIX=$KDEDIR \
-DCMAKE_BUILD_TYPE=debugfull&& \
make && \
make install;

per

cmake $srcFolder -GKDevelop3 -DCMAKE_INSTALL_PREFIX=$KDEDIR \
-DCMAKE_BUILD_TYPE=debugfull&& \
make && \
make install;

Després de que hagis fer això, relogueja per a que els canvis al fitxer .bashrc tinguin efecte. Quan necessitis reexecutar la comanda cmakekde al directori de compilació (arrel) del projecte amb que vulguis treballar amb KDevelop (si no has fet servir -GKDevelop3 al pas de compliació). Per exemple, si vols treballar a Konsola, que vui a kdebase, necessites executar cmakekde al directori $KDE_BUILD/KDE/kdebase. Això desafortunadament recompila completament tot, però només quan canvies el generador.

Com que totes les variables d'entorn de l'usuari kde-devel són específiques per a KDE 4, es necessita posar-les de manera que concordin amb el teu entorn KDE 3 abans d'iniciar KDevelop. Una manera senzilla de fer aio és afegir la següent funció al teu .bashrc:

function start3app {
  mkdir -p /tmp/$USER-kde
  export PATH=/opt/kde3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games 
  export LD_LIBRARY_PATH= 
  export KDETMP=/tmp/$USER-kde 
  export KDEVARTMP=/var/tmp/$USER-kde 
  export KDEHOME=$HOME/.kde 
  export KDEDIR=/usr 
  export KDEDIRS=$KDEDIR 
  export DISPLAY=:0 
  eval "$@"
  source $HOME/.bashrc   #Reset environment variables again
}
Les variables PATH i LD_LIBRARY_PATH són agafades de l'usuari de KDE 3, i poden ser diferents al teu sistema. Escriu
echo $PATH
i
echo $LD_LIBRARY_PATH
com a usuari normal de KDE 3 per a obtindre aquests valors. La funció de sobre assumeix que KDE 3 és instal·lat al prefix /usr, com és el cas en els sistemes basats en Debian. Si el teu KDE 3 està instal·lat en un prefix diferent, necessites canviar la línia KDEDIR d'acord amb això. Aquí hi ha un exemple de com trobes el prefix de la teva isntal·lació de KDE; en aquest exemple és /opt/kde3:
kde-config --prefix
/opt/kde3

Ara hauries de ser capaç d'iniciar KDevelop escrivint start3app kdevelop. Fes-ho ara.


{{{3}}}
 
noframe

Pots inciciar qualsevol aplicació KDE 3 amb la funció start3app. Són cancidats útils Kompare i kdesvn.

Tot i això, no pots iniciar KDbg d'aquesta manera der a depurar aplicacions KDE 4, ja que les variables d'entorns per a l'aplicació depurada són incorrectes.

Consell



Problemes

Simptoma: kdevelop diu "cannot talk to klauncher". No pots obrir un fitxer.

Solució: afegeix la ruta de la teva llibreria KDE a LD_LIBRARY_PATH, p.e.:

export LD_LIBRARY_PATH=/opt/kde3/lib

Configurant KDevelop

Ara que KDevelop s'ha iniciat, necessites ajustar unes poques opcions. Ves a Settings->Configure KDevelop...->Documentation per a fer-ho. Esborra totes les entrades que no siguin rellevants per a la programació KDE 4.

{{{3}}}
 
noframe
Tot i que en aquesta secció s'empren variables d'entorn com ara $HOME, hauries de substituir-les per rutes reals perquè KDevelop no resol variables d'entorn.
Nota


Opcionalment, pots afegir la documentació de l'API kdelibs. Has de crear-la abans. Llavors afegeix la documentació prement Add.... En aquest diàleg, empra els següents paràmetres:

  • Type: Doxygen Documentation Collection (necessita posar-se primer)
  • Location: $KDE_SRC/KDE/kdelibs/kdelibs-apidocs/index.html

Ara afegeix la documentació de l'API Qt, que també ha de ser creada abans, emprant els següents paràmetres:

  • Type: Qt Documentation Collection (necessita posar-se primer)
  • Location: $HOME/qt-copy/doc/html/qt.dcf

Després de que hagis afegit kdelibs i la documentació de l'API de Qt, assegurat que tots els quadres de confirmació (TOC,Index and Search) estiguin marcats. Llavors, vers a la pestanya Full Text Search i assegura't que les rutes als executables htdig, htmerge i htsearch siguin correctes. Pots tancar llavors el diàleg de configuració.

Ara és hora d'obrir el projecte en el que vols treballar clicant a Project->Open Project.... Els fitxers del projecte es troben al directori de compliació. Per exemple, si vols treballar en Konsole,necessites obrir $KDE_BUILD/KDE/kdebase/apps/konsole/konsole.kdevelop. Ara necessites ajustar unes poques opcions especifiques del projecte a Project->Project Options. Necessites fer això cada vegada que comencis a treballar en un projecte diferent.

{{{3}}}
 
noframe

A vegades, un fitxer de projecte KDevelop no és present per la carpeta on vols treballar.

Això pot ser degut a diverses raons, depen de com són escrits els fitxers CMake. Normalment, els fitxers CMake que tenen la crida project(projectname) en ells solen funcionar bé. Una vegada estiguis suficientment familiaritzat amb CMake, pots provar d'afegir-hi la crida.

A workaround for this is to simply use the KDevelop project file of the parent folder, or even higher. In this case, you need to use the Make Active Directory entry in the context menu of the File Selector sidetab. With this, you can ignore the other unwanted folders when building and installing.

Nota


  • C++ Support->Code Completion
Here you need to add code completion databases for Qt and kdelibs, and more if you like, for example you might need a database for kdepimlibs when working on kdepim.
For kdelibs, click the Add... button and choose KDevelop Custom Directory PCS Importer, then add your KDE include directory ($HOME/kde/include) to the list and proceed. You can use the file selection dialog and the Add button to add it.
Now, add the database for Qt 4 by selecting KDevelop Qt4 PCS Importer this time. You need to select the Qt 4 include directory, which is $HOME/qt-copy/include.
noframe
 
Note
The Qt4 PCS Importer is only needed if you didn't install Qt4, i.e. you use it directly from the build directory. The drawback of using the Qt4 importer is that it doesn't show progress and the application seems to hang while it imports. The alternative is to use the Custom Directory PCS Importer for this too
  • C++ Support->Qt Options
Check Enable Qt options and choose Qt4 as your version. Set the QMake Binary path to $HOME/qt-copy/bin/qmake. Then choose Qt 4 style as Qt include syntax. Use $HOME/qt-copy/bin/designer as Designer Binary. Make sure to use the Change Plugin Paths dialog to add the plugin directory from KDE so you see the KDE widgets when designer is started. To do this add $HOME/kde/lib/kde4/plugins to the lineedit and then click the Add button.
  • Run Options
Make sure you use the correct binary as Executable. For example, if you want to run Konsole, this is $KDE_BUILD/KDE/kdebase/apps/konsole/src/konsole. You should add --nofork to the Debug Arguments or debugging some applications like KMail will not work at all.
Because the start3app functions changes some environment variables, you need to change them back here so the KDE 4 applications can be run without problems from within KDevelop.
For some applications, like Konsole, this is not strictly necessary, but others like KMail will crash if you do not change this.
Simply click the Add / Copy button to add new environment variables. You will need the following, which are the same as in your .bashrc:
Name Value
KDEHOME $HOME/.kde4
PATH $KDEDIR/bin:$QTDIR/bin:/usr/local/bin:$PATH
LD_LIBRARY_PATH $KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
KDETMP /tmp/$USER-kde4
KDEVARTMP /var/tmp/$USER-kde4
KDEDIR $HOME/kde
KDEDIRS $KDEDIR
LD_BIND_NOW 42


  • Build Options->Build
Make sure the correct build directory is selected. Again, for Konsole, this would be $KDE_BUILD/KDE/kdebase/apps/konsole.
  • Build Options->Make
You might want to check Abort on first error. You also might want to add VERBOSE= or VERBOSE=1 to Additional make options to control the level of verbosity for the build process.
If you have more than one processor or if you have access to an icecream cluster, you might want to check the Run multiple jobs option and set the Number of simultaneous jobs to the number of available processors. This increases the compile speed. It is the same as the -j option for make.
  • Formatting
You should set all options here to match the coding style of the project you are working on.
  • CTags->General
You need to correctly set the Path to ctags binary, which is /usr/bin/ctags on Debian-based systems.
You probably want to enable the When more than one hit, go directly to the first option.

Now you have finished adjusting your project-specific settings. Now you should remove some plugins you do not need, in Settings->Configure Plugins.... I for example disable the following plugins:

Abbreviation Expansion, Code Snippets, Doxygen Support, Embedded Konsole, File Tree, Final Packaging Support, "Open with" Menu Addon, QuickOpen, Regular Expression Tester, Scripting, Security Checker, Shell Filtering and Insertion, Text Structure and Tools Menu Addition.

You should at least disable the bold ones.

Now, open any source file if none is open already. This will enable the Settings->Configure Editor... entry, where you need to set the tab options to match the tab style used by the project you are working on. The important settings are:

  • Appearance->Borders->Show line numbers: Should be checked.
  • Appearance->Borders->Show icon border: Should be checked.
  • Editing->Tabulators
  • Editing->Static Word Wrap->Show marker: Should be checked
  • Indentation->Automatic Indentation->Indentation mode: Should be C Style
  • Indentation in general

In the mainwindow, click the CTags tab on the bottom tabbar, then click the Regenerate button to create a CTags database for easier source code navigation.

Now you have completed all essential configuration, congratulations!

Using KDevelop

Refer to the KDevelop manual for general help using KDevelop. The following section will only deal with special cases for KDE 4.

Debugging

KDE apps have many symbols, which means that you need a lot of memory to get a decent loading times for debugging. To quote a GDB developer: "I would be reluctant to debug KDE on something with <1GB RAM." If the stepping function of the debugger is slow for you, try the following tips:

  • Hide local variables. The Locals part of the variable tab on the left causes a big slowdown when stepping if you have many local variables. Simple collapse the Locals part of the tree, the local variables are then not updated every step. You can still examine variables by using the Evaluate expression function.
  • Use the patch at http://bugs.kde.org/show_bug.cgi?id=143977. It prevents the update of the framestack widget at each step, speeding up stepping considerably. The patch introduces some minor glitches, which is why it is not yet commited.
noframe
 
Note
KDevelop does not yet support modifing the CMake build system. This means you can not use KDevelop to add or remove files from the project or to change any other aspect of your project's build process. You need to modify the CMake files by hand and then rerun cmakekde instead. Read the CMake tutorial to learn how to do this.
Ktip.png
 
Tip
When you work on libraries, you first need to install them before you can test or debug your changes.

Since this is cumbersome and time consuming, you should create symlinks (ln -s) pointing from the build directory to the installation directory for all affected libraries.

Often, even simple programs use libraries internally, for example the settings dialog of Konsole is really a library.

This page was last modified on 15 July 2012, at 17:13. This page has been accessed 4,679 times. Content is available under Creative Commons License SA 3.0 as well as the GNU Free Documentation License 1.2.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal