m (→Необходимые программы: Links correction) |
m (→= Настройка окружения) |
||
| Line 305: | Line 305: | ||
</code> | </code> | ||
| − | После этого | + | После этого заново войдите в систему, чтобы изменения {{path|.bashrc}} вступили в силу. Затем перезапустите ''cmakekde'' из каталога сборки (его корня) проекта, над которым вы хотите работать с помощью KDevelop (если вы не использовали параметр ''-GKDevelop3'' во время [[Getting_Started/Build/KDE4_(ru)#Setting_up_the_environment|сборки]]). Например, если вы хотите работать с Konsole, входящей в состав ''kdebase'', вам надо запустить cmakekde в каталоге {{path|$KDE_BUILD/KDE/kdebase}}. К несчастью, это пересоберёт весь проект, но всего один раз после изменения генератора файлов. |
Из-за того, что все переменные окружения пользователя kde-devel специфичны для KDE 4, перед запуском KDevelop необходимо устанавливать старые значения, соответствующие KDE 3. | Из-за того, что все переменные окружения пользователя kde-devel специфичны для KDE 4, перед запуском KDevelop необходимо устанавливать старые значения, соответствующие KDE 3. | ||
| − | Самый удобный способ - добавить функцию в ваш {{path|.bashrc}}: | + | Самый удобный способ - добавить следующую функцию в ваш {{path|.bashrc}}: |
<code bash> | <code bash> | ||
| Line 334: | Line 334: | ||
С помощью функции <tt>start3app</tt> можно запускать любые KDE 3 приложения, например ''Kompare'' или ''kdesvn''. | С помощью функции <tt>start3app</tt> можно запускать любые KDE 3 приложения, например ''Kompare'' или ''kdesvn''. | ||
| − | Однако, вы не можете | + | Однако, вы не можете таким образом запускать ''KDbg'' для отладки KDE 4 приложений из-за того, что переменные окружения для отлаживаемого приложения неверны. |
}} | }} | ||
<!-- | <!-- | ||
{{tip| | {{tip| | ||
| − | Вместо того, чтобы использовать ''start3app'' из-под | + | Вместо того, чтобы использовать ''start3app'' из-под пользователя ''kde-devel'' для запуска KDevelop, можно воспользоваться диалогом запуска приложений KDE ''(Alt+F2)'': |
[[Image:Minicli.png]] | [[Image:Minicli.png]] | ||
| − | Будет выполнен запуск KDevelop от имени пользователя ''kde-devel'', но | + | Будет выполнен запуск KDevelop от имени пользователя ''kde-devel'', но будут использованы переменные окружения обычного пользователя, как и при использовании ''start3app''. |
}} | }} | ||
--> | --> | ||
| Line 348: | Line 348: | ||
==== Настройка KDevelop ==== | ==== Настройка KDevelop ==== | ||
| − | Теперь нам нужно | + | Теперь нам нужно настроить KDevelop. Для этого зайдите в ''Настройка->Настроить KDevelop...->Документация''. Очистите все поля, не связанные с разработкой KDE 4. |
{{note|Так как KDevelop не распознаёт переменные окружения (такие, как $HOME), их надо заменить на реальные пути. | {{note|Так как KDevelop не распознаёт переменные окружения (такие, как $HOME), их надо заменить на реальные пути. | ||
| Line 363: | Line 363: | ||
После добавления документации по kdelibs и Qt API, проверьте, активны ли чекбоксы (''TOC'',''Индекс'' и ''Поиск''). Затем откройте вкладку ''Полнотекстовый поиск'' и проверьте корректность путей для утилит ''htdig'', ''htmerge'' и ''htsearch''. Посде этого диалоговое окно настроек можно закрыть. | После добавления документации по kdelibs и Qt API, проверьте, активны ли чекбоксы (''TOC'',''Индекс'' и ''Поиск''). Затем откройте вкладку ''Полнотекстовый поиск'' и проверьте корректность путей для утилит ''htdig'', ''htmerge'' и ''htsearch''. Посде этого диалоговое окно настроек можно закрыть. | ||
| − | Теперь настало время открыть проект, над которым вы собираетесь работать, выберите ''Проект->Открыть проект...''. Файлы проектов находятся в каталогах самих проектов. Например, если вам требуется Konsole, то нужно открыть {{path|$KDE_BUILD/KDE/kdebase/apps/konsole/konsole.kdevelop}}. Теперь необходимо | + | Теперь настало время открыть проект, над которым вы собираетесь работать, выберите ''Проект->Открыть проект...''. Файлы проектов находятся в каталогах самих проектов. Например, если вам требуется Konsole, то нужно открыть {{path|$KDE_BUILD/KDE/kdebase/apps/konsole/konsole.kdevelop}}. Теперь необходимо указать настройки проекта в ''Проект->Параметры проекта''. Это необходимо делать для каждого нового проекта. |
{{note| | {{note| | ||
| − | Иногда файл проекта KDevelop может | + | Иногда файл проекта KDevelop может отсутствовать в каталоге нужного вам приложения. |
| − | Это может быть обусловлено различными причинами, зависит от того, как написаны файлы CMake. Обычно, если в CMake файле присутствует заголовок <tt>project(projectname)</tt>, всё должно работать. Если вы знакомы со структурой CMake файлов, вы можете попробовать добавить | + | Это может быть обусловлено различными причинами, но часто зависит от того, как написаны файлы CMake. Обычно, если в CMake файле присутствует заголовок <tt>project(projectname)</tt>, всё должно работать. Если вы знакомы со структурой CMake файлов, вы можете попробовать добавить заголовок (если он отсутствует). |
Обходной путь при решении данной проблемы - использовать файл проекта KDevelop из родительского каталога (или даже ещё выше). В таком случае вам следует использовать <tt>Сделать каталог активным</tt> из контекстного меню <tt>Выбор файлов</tt>, ненужные каталоги можно не использовать при сборке и установке. | Обходной путь при решении данной проблемы - использовать файл проекта KDevelop из родительского каталога (или даже ещё выше). В таком случае вам следует использовать <tt>Сделать каталог активным</tt> из контекстного меню <tt>Выбор файлов</tt>, ненужные каталоги можно не использовать при сборке и установке. | ||
| Line 382: | Line 382: | ||
:Теперь добавьте базу данных для Qt 4, используя ''Загрузка символов из библиотеки Qt 4 в хранилище классов''. Для этого следует выбрать каталог с заголовочными файлами Qt 4, {{path|$HOME/qt-copy/include}}. | :Теперь добавьте базу данных для Qt 4, используя ''Загрузка символов из библиотеки Qt 4 в хранилище классов''. Для этого следует выбрать каталог с заголовочными файлами Qt 4, {{path|$HOME/qt-copy/include}}. | ||
| − | {{note|Загрузка символов из библиотеки Qt 4 в хранилище классов требуется, если вы не установили Qt4, т.е. используете его напрямую с каталога сборки. Недостаток использования "Загрузки символов из библиотеки Qt 4 в хранилище классов" в том, что во время добавления из-за отсутствия | + | {{note|Загрузка символов из библиотеки Qt 4 в хранилище классов требуется, если вы не установили Qt4, т.е. используете его напрямую с каталога сборки. Недостаток использования "Загрузки символов из библиотеки Qt 4 в хранилище классов" состоит в том, что во время добавления из-за отсутствия прогрессбара приложение выглядит зависшим. В качестве альтернативы можно использовать загрузку символов из любого каталога в хранилище классов. |
* ''Поддержка C++->Параметры Qt'' | * ''Поддержка C++->Параметры Qt'' | ||
| − | :Отметьте ''Включить параметры Qt'' и выберите Qt4 версию. Установите значение ''QMake Binary'' в {{path|$HOME/qt-copy/bin/qmake}}. Затем выберите ''Qt 4 style'' в ''Qt include syntax''. В ''Designer Binary'' пропишите {{path|$HOME/qt-copy/bin/designer}}. Чтобы получить возможность использовать виджеты KDE в | + | :Отметьте ''Включить параметры Qt'' и выберите Qt4 версию. Установите значение ''QMake Binary'' в {{path|$HOME/qt-copy/bin/qmake}}. Затем выберите ''Qt 4 style'' в ''Qt include syntax''. В ''Designer Binary'' пропишите {{path|$HOME/qt-copy/bin/designer}}. Чтобы получить возможность использовать виджеты KDE в дизайнере, используйте диалог ''Change Plugin Paths'', чтобы добавить каталог плагинов KDE. Для этого в строке редактирования напечатайте {{path|$HOME/kde/lib/kde4/plugins}} и нажмите ''Добавить''. |
| Line 392: | Line 392: | ||
:Удостоверьтесь, что вы вписали правильный путь для ''Executable''. Например, для запуска Konsole нужно вписать {{path|$KDE_BUILD/KDE/kdebase/apps/konsole/src/konsole}}. Не забудьте в ''Debug Arguments'' добавить параметр ''--nofork'', в противном случае некоторые приложения, например ''KMail'', не будут работать вообще. | :Удостоверьтесь, что вы вписали правильный путь для ''Executable''. Например, для запуска Konsole нужно вписать {{path|$KDE_BUILD/KDE/kdebase/apps/konsole/src/konsole}}. Не забудьте в ''Debug Arguments'' добавить параметр ''--nofork'', в противном случае некоторые приложения, например ''KMail'', не будут работать вообще. | ||
| − | :В связи с тем, что функция ''start3app'' изменяет некоторые переменные окружения, вам необходимо изменить их | + | :В связи с тем, что функция ''start3app'' изменяет некоторые переменные окружения, вам необходимо изменить их в настройках проекта, чтобы KDE 4 приложения могли запускаться из KDevelop. |
| − | :Для таких приложений, как Konsole это не принципиально, но остальные (наподобие KMail) упадут при запуске, если этого не сделать. | + | :Для таких приложений, как Konsole, это не принципиально, но остальные (наподобие KMail) упадут при запуске, если этого не сделать. |
:Просто щёлкните по кнопке ''Добавить / Копировать'', чтобы добавить переменные окружения. Вам потребуются следующие (такие же, как и в вашем [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|{{path|.bashrc}}]]): | :Просто щёлкните по кнопке ''Добавить / Копировать'', чтобы добавить переменные окружения. Вам потребуются следующие (такие же, как и в вашем [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|{{path|.bashrc}}]]): | ||
| Line 431: | Line 431: | ||
* ''Параметры сборки->Сборка'' | * ''Параметры сборки->Сборка'' | ||
| − | :Удостоверьтесь, что | + | :Удостоверьтесь, что выбран верный каталог сборки. Например, для Konsole это {{path|$KDE_BUILD/KDE/kdebase/apps/konsole}}. |
| Line 449: | Line 449: | ||
:Возможно, вы захотите включить опцию <tt>При нескольких попаданиях, сразу перейти к первому</tt>. | :Возможно, вы захотите включить опцию <tt>При нескольких попаданиях, сразу перейти к первому</tt>. | ||
| − | + | Все настройки, касающиеся проекта, выполнены. Теперь вы должны удалить некоторые ненужные плагины в ''Settings->Configure Plugins...''. Например, я отключаю следующие плагины: | |
| Line 469: | Line 469: | ||
==== Использование KDevelop ==== | ==== Использование KDevelop ==== | ||
| − | Обратитесь к [http://docs.kde.org/development/ru/kdevelop/kdevelop/ мануалу по KDevelop], чтобы ознакомиться с | + | Обратитесь к [http://docs.kde.org/development/ru/kdevelop/kdevelop/ мануалу по KDevelop], чтобы ознакомиться с общей информацией по использованию KDevelop. Данный раздел касается аспектов, специфичных для KDE 4. |
===== Отладка ===== | ===== Отладка ===== | ||
| − | Приложения KDE содержат много отладочных символов, что означает, что требуется большое количество памяти для достижения | + | Приложения KDE содержат много отладочных символов, что означает, что требуется большое количество памяти для достижения приемлемого времени запуска приложения во время отладки. Мнение одного из разработчиков GDB: "Мне было бы очень тяжело отлаживать KDE при наличии меньше 1 GB RAM". |
| − | Если пошагавая отладка слишком медлено | + | Если пошагавая отладка работает слишком медлено, то вам может помочь следующее: |
| − | * Спрячьте локальные переменные. Часть <tt>Locals</tt> вкладки | + | * Спрячьте локальные переменные. Часть <tt>Locals</tt> из вкладки переменных (слева) сильно замедляет работу при наличии большого количества локальных переменных во время пошаговой отладки. Значение переменной по-прежнему можно получить с помощью <tt>Evaluate expression</tt>. |
* Используйте патч с http://bugs.kde.org/show_bug.cgi?id=143977. Он предотвращает обновление виджета framestack при выполнении каждого шага, значительно повышая скорость отладчика. Патч имеет незначительные ошибки, только поэтому он ещё не внесён в проект. | * Используйте патч с http://bugs.kde.org/show_bug.cgi?id=143977. Он предотвращает обновление виджета framestack при выполнении каждого шага, значительно повышая скорость отладчика. Патч имеет незначительные ошибки, только поэтому он ещё не внесён в проект. | ||
| Line 487: | Line 487: | ||
}} | }} | ||
| − | {{tip|При работе над библиотеками, их | + | {{tip|При работе над библиотеками, их надо установить перед тем, как тестировать или отлаживать изменения. |
| − | Из-за того, что это неудобно и занимает очень много времени, лучше для всех | + | Из-за того, что это неудобно и занимает очень много времени, лучше для всех ваших библиотек в каталоге установки создавать символические ссылки ''(ln -s)'', указывающие на файлы из каталога сборки |
Обычно, даже простые программы используют внутренние библиотеки, например диалог настроек в Konsole является библиотекой.}} | Обычно, даже простые программы используют внутренние библиотеки, например диалог настроек в Konsole является библиотекой.}} | ||
| − | |||
=== KBugBuster === | === KBugBuster === | ||
Contents |
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
| Tutorial Series | Getting Started |
| Previous | Сборка KDE 4 |
| What's Next | Other development topics |
| Further Reading | n/a |
Существует три основных способа работы разработчиков с KDE 4:
Все 3 способа описаны в последующих разделах.
| Note |
|---|
Если при запуске приложений kde4 возникают похожие ошибки:
Qt: Session management error: Could not open network socket QMutex::lock: Deadlock detected in thread -1241241936или при запуске startkde ничего не происходит, то прочитайте эту статью, чтобы найти решение проблемы. |
Для данного способа требуется утилита sux (http://fgouget.free.fr/sux/sux-readme.shtml). Утилита sux доступна во многих дистрибутивах. В противном случае вы можете положиться на способ обычная оболочка без sux, описанный ниже. sux позволяет переключаться к другому пользователю с неявным управлением настроек (implicit managing of the X forwarding details) X (authentication and DISPLAY exporting) простым и удобным способом.
Чтобы залогиниться, напечатайте sux - kde-devel
Все переменные окружения и всё остальное будет корректно установлена для
All environment variables and everything else should be set up correctly by your .bashrc. Чтобы запустить приложение, просто наберите его имя, например, kwrite.
| Note |
|---|
При получении ошибок, связанных с отстутствием mimetypes и им подобных, попробуйте следующее:
|
Наиболее простой способ запустить KDE 4 приложение - использовать su, чтобы стать пользователем kde-devel, а затем запустить любое приложение KDE 4 из командной строки. Чтобы сменить пользователя, напечатайте:
su - kde-devel
а затем, после ввода пароля
export DISPLAY=:0
| Note |
|---|
| Экспортирование переменной DISPLAY необходимо, чтобы KDE 4 приложения появлялись на рабочем столе KDE 3. |
Все переменные окружения и всё остальное должно быть корректно установлено в вашем
.bashrc файле. Чтобы запустить приложение, просто напечатайте его имя, например, kwrite.
| Note |
|---|
При получении ошибок, связанных с отстутствием mimetypes и им подобных, попробуйте следующее:
|
Самый простой способ запускать KDE 4 приложения с помощью SSH в текущей рабочей среде - войти под пользователем kde-devel в командную оболочку совместимую с X следующим образом:
The simplest way to run a KDE 4 application with SSH in your current desktop environment is to get an X-aware shell prompt as the kde-devel user like this:
ssh -X kde-devel@localhost
Теперь можно запускать KDE 4 приложения обычным способом, например:
kwrite
Эти 2 строчки могут быть соединены для удобства:
ssh -X kde-devel@localhost kwrite
Перед тем, как что-то серьёзное может быть выполнено с помощью данного способа, следует настроить вход без пароля. Сначала, выполните следующую команду из-под обычного пользователя:
ssh-keygen -t rsa
Три раза нажмите enter, чтобы принять путь ~/.ssh/id_rsa и пустую строку с паролем. Теперь скопируйте в ~/.ssh/id_rsa.pub одиночную строку, выводимую следующей командой:
cat ~/.ssh/id_rsa.pub
После того, как строка скопирована, войдите обратно под пользователем kde-devel с помощью ssh и добавьте скопированную строку в файл $HOME/.ssh/authorized_keys:
ssh -X kde-devel@localhost $HOME/kde/bin/kwrite \ $HOME/.ssh/authorized_keys
Вставьте строку, сохраните файл и закройте KWrite. Теперь снова попробуйте запустить kwrite той же SSH-командой; Вам не должно потребоваться вводить пароль:
ssh -X kde-devel@localhost $HOME/kde/bin/kwrite
| Warning |
|---|
Использование беспарольного входа через SSH небезопасно, поэтому удостоверьтесь, что вы защитили ваш файл ~/.ssh/id_rsa, убрав к нему доступ с помощью:
chmod og-xrw ~/.ssh/id_rsa(также файл должен иметь данные права при создании) |
Один из способов запускать приложения более удобным способом, чем через SSH из командной строки, - создать .desktop файлы, которые входят в другой эккаунт с помощью ssh.
| Note |
|---|
| Это возможно, если только ваша рабочая среда поддерживает .desktop файлы, но, по крайней мере, KDE и GNOME поддерживают. |
Можно использовать существующий .desktop файл в качестве шаблона (с вашего рабочего окружения) или же создать с нуля. Основная идея - дописать префикс к имени программы:
ssh -X kde-devel@localhost $HOME/kde/bin/
Простой .desktop файл, запускающий KWrite, выглядит следующим образом:
[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=
| Tip |
|---|
| Apps launched using SSH like this don't trigger the correct launch responses, so you probably want to disable "launch feedback" for your .desktop files |
| Note |
|---|
| Чтобы надлежащим образом создать .desktop файл для KDE 4 приложений, использую образец, пакет приложения (app's package) должен быть установлен в ~/kde/bin с помощью команды cmakekde |
Вместо того, чтобы использовать полнофункциональный виртуальный X для разработки ПО, можно использовать Xephyr, чтобы встроить сеанс KDE 4 в запущенный KDE 3 сеанс или любую другую рабочую среду X11.
Это также можно осуществить с помощью xnest, но xnest не может работать с такими расширениями, как Render, поэтому многие предпочитают Xephyr.
Если вы хотите запустить минимальный сеанс KDE, просто запустите Xephyr (в Kubuntu называется xserver-xephyr):
Xephyr :1&
Теперь вы можете запустить KDE:
export DISPLAY=:1 /path/to/kde4/bin/startkde-modified &
startkde-modified является копией скрипта startkde с добавлением в начало файла следующих строк:
export KDEDIR=`kde4-config --prefix`
export LD_LIBRARY_PATH=$KDEDIR/lib
export PATH=$KDEDIR/bin/:$PATH
export KDEHOME=~/.kde4
Xephyr можно также использовать с KDM с помощью протокола Xdmcp, что позволяет запускать новый сеанс KDE 4 через KDM.
В Kubuntu это можно сделать, изменив
[Xdmcp]
Enable=false
в /etc/kde3/kdm/kdmrc на
[Xdmcp]
Enable=true
и модифицируйте ваш /etc/kde3/kdm/Xaccess, чтобы разрешить доступ к локальной машине. Помимо этого следует заблокировать доступ к порту Xdmcp для всех внешних интерфейсов, если вы работаете в опасной зоне (untrusted zone/environment).
Если всё готово, просто запустите Xephyr:
Xephyr -query localhost :1 -host-cursor -screen 1024x768&
где -host-cursor задаёт число попыток использовать курсор хоста и -screen - разрешение экрана.
Note: Если вы получаете много ошибок при соединении, можно попробовать запустить Xephyr с опцией -ac, например:
Xephyr -ac :1&
Если у вас нет Xephyr, то вы можете использовать Xnest:
Xnest -ac :1& export DISPLAY=:1
| This section needs improvements: Please help us to
cleanup confusing sections and fix sections which contain a todo |
Я использую это для моего стартого скрипта nested_kde4.sh:
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}
Если появляется ошибка:
"Call to lnusertemp failed (temporary directories full?). Check your installation."
Попробуйте:
mkdir /var/tmp/kde-devel-kde4
Вышеприведённый код предполагает, что вы работаете из-под kde-devel.
Чтобы запустить полнофункциональный сеанс рабочего окружения KDE, можно либо сделать обычным способом из командной строки:
X :1 & export DISPLAY=:1 startkde
| Note |
|---|
| Если X-сервер отказывает в соединении, выдавая что-то наподобие: Xlib: connection to ":1.0" refused by server, попробуйте X -ac :1. |
или можно добавить KDE 4 в менеджер входа. Для KDM (или совместимого менеджера входа) это можно сделать, создав .desktop файл либо в `kde-config --prefix`/share/apps/kdm/sessions/, либо в /usr/share/xsessions/. Наиболее простой способ сделать это - скопировать существующий kde.desktop файл и назвать его kde4.desktop. Откройте новый .desktop файл в текстовом редакторе и замените поля Exec, TryExec и Name на что-то в стиле:
Exec=$HOME/kde/bin/startkde
TryExec=$HOME/kde/bin/startkde
Name=KDE4
Замените $HOME/kde из примера выше на префикс, где находится KDE4.
После перезапуска менеджера входа (Alt+e в KDM) в списке сеансов должен появится новый пункт.
| Note |
|---|
| Путь к 'qdbus' (обычно $QTDIR/bin) должен быть корректно прописан в $PATH для удачного запуска сеанса. В противном случае вы получите следующую ошибку "Could not start DBus. Check your installation." |
В данном разделе описано, как использовать KDevelop 3.4 для разработки приложений KDE 4. Если у вас есть какие-либо вопросы или замечания, касающиеся данного раздела, то вы можете воспользоваться страницей обсуждения.
Для работы требуется, по крайней мере, KDevelop версии 3.4, который является KDE 3 приложением. Версии ниже 3.4 не поддерживают Qt 4 и некоторые другие вещи. Версия KDevelop для KDE 4 ещё не готова для применения в серьёзных разработках. KDevelop можно скачать с домашней страницы проекта. Удостоверьтесь, что вы поставили KDevekop, как обычное KDE 3 приложение, не с помощью пользователя kde-devel.
Также необходимо установить самую последнюю версию GDB, на данный момент это 6.6.0.
Кроме того, нужно создать локальную копию документации по kdelibs API, как описано в инструкции по сборке.
Также необходимо установить ctags, htdig, htmerge и htsearch. Могут оказаться полезнымиvalgrind и callgrind.
Удостоверьтесь, что вы выполнили сборку KDE 4 так, как описано в build инструкции и получили исправную рабочую среду KDE 4. Проверьте, запускаются ли простые простые приложение типа Konsole и KWrite из командной строки пользователя kde-devel.
Все последующие инструкции должны выполняться из-под пользователя kde-devel. Вам необходимо зайти в систему под этим пользователем, набрав su - kde-devel.
KDevelop не имеет встроенной поддержки проектов CMake. К счастью, CMake может генерировать файлы проектов KDevelop. Для этого вместе с командой cmake нужно использовать параметр -GKDevelop3. Этот параметр позволяет CMake вместе с обычными Makefile-ми генерировать файлы проекта KDevelop. Для удобства можно изменить настройки cmakekde в .bashrc. Просто замените
cmake $srcFolder -DCMAKE_INSTALL_PREFIX=$KDEDIR \
-DCMAKE_BUILD_TYPE=debugfull&& \
make VERBOSE=1 && \
make install;
на
cmake $srcFolder -GKDevelop3 -DCMAKE_INSTALL_PREFIX=$KDEDIR \
-DCMAKE_BUILD_TYPE=debugfull&& \
make VERBOSE=1 && \
make install;
После этого заново войдите в систему, чтобы изменения .bashrc вступили в силу. Затем перезапустите cmakekde из каталога сборки (его корня) проекта, над которым вы хотите работать с помощью KDevelop (если вы не использовали параметр -GKDevelop3 во время сборки). Например, если вы хотите работать с Konsole, входящей в состав kdebase, вам надо запустить cmakekde в каталоге $KDE_BUILD/KDE/kdebase. К несчастью, это пересоберёт весь проект, но всего один раз после изменения генератора файлов.
Из-за того, что все переменные окружения пользователя kde-devel специфичны для KDE 4, перед запуском KDevelop необходимо устанавливать старые значения, соответствующие KDE 3. Самый удобный способ - добавить следующую функцию в ваш .bashrc:
function start3app {
mkdir -p /tmp/$USER-kde export PATH=/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 #Снова сбрасываем значения переменных окружения
}
Переменные PATH и LD_LIBRARY_PATH взяты у KDE 3 пользователя, и их значение в различных системах может различаться. Напечатайте echo $PATH и echo $LD_LIBRARY_PATH работая под обычным KDE 3 пользователем, чтобы получить их значения. Составляю функцию, приведённую выше, мы предположили, что KDE 3 установлена с префиксом /usr, как, например, принято в Debian-based дистрибутивах. Если KDE 3 установлена с другим префиксом, например, /opt/kde3, то вам следует поменять значение переменной KDEDIR.
Теперь вы можете запускать KDevelop, напечатав start3app kdevelop. Выполните это прямо сейчас.
| Tip |
|---|
| С помощью функции start3app можно запускать любые KDE 3 приложения, например Kompare или kdesvn. Однако, вы не можете таким образом запускать KDbg для отладки KDE 4 приложений из-за того, что переменные окружения для отлаживаемого приложения неверны. |
Теперь нам нужно настроить KDevelop. Для этого зайдите в Настройка->Настроить KDevelop...->Документация. Очистите все поля, не связанные с разработкой KDE 4.
{{note|Так как KDevelop не распознаёт переменные окружения (такие, как $HOME), их надо заменить на реальные пути.
Выберите Добавить..., чтобы добавить документацию по kdelibs API. В данном диалоге используйте следующие установки:
Теперь добавьте документацию по Qt API:
После добавления документации по kdelibs и Qt API, проверьте, активны ли чекбоксы (TOC,Индекс и Поиск). Затем откройте вкладку Полнотекстовый поиск и проверьте корректность путей для утилит htdig, htmerge и htsearch. Посде этого диалоговое окно настроек можно закрыть.
Теперь настало время открыть проект, над которым вы собираетесь работать, выберите Проект->Открыть проект.... Файлы проектов находятся в каталогах самих проектов. Например, если вам требуется Konsole, то нужно открыть $KDE_BUILD/KDE/kdebase/apps/konsole/konsole.kdevelop. Теперь необходимо указать настройки проекта в Проект->Параметры проекта. Это необходимо делать для каждого нового проекта.
| Note |
|---|
| Иногда файл проекта KDevelop может отсутствовать в каталоге нужного вам приложения.
Это может быть обусловлено различными причинами, но часто зависит от того, как написаны файлы CMake. Обычно, если в CMake файле присутствует заголовок project(projectname), всё должно работать. Если вы знакомы со структурой CMake файлов, вы можете попробовать добавить заголовок (если он отсутствует). Обходной путь при решении данной проблемы - использовать файл проекта KDevelop из родительского каталога (или даже ещё выше). В таком случае вам следует использовать Сделать каталог активным из контекстного меню Выбор файлов, ненужные каталоги можно не использовать при сборке и установке. |
{{note|Загрузка символов из библиотеки Qt 4 в хранилище классов требуется, если вы не установили Qt4, т.е. используете его напрямую с каталога сборки. Недостаток использования "Загрузки символов из библиотеки Qt 4 в хранилище классов" состоит в том, что во время добавления из-за отсутствия прогрессбара приложение выглядит зависшим. В качестве альтернативы можно использовать загрузку символов из любого каталога в хранилище классов.
| Name | Value |
|---|---|
| KDEHOME | $HOME/.kde4 |
| PATH | $QTDIR/bin:$KDEDIR/bin:/usr/local/bin:$PATH |
| LD_LIBRARY_PATH | $QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH |
| KDETMP | /tmp/$USER-kde4 |
| KDEVARTMP | /var/tmp/$USER-kde4 |
| KDEDIR | $HOME/kde |
| KDEDIRS | $KDEDIR |
| LD_BIND_NOW | 42 |
Все настройки, касающиеся проекта, выполнены. Теперь вы должны удалить некоторые ненужные плагины в Settings->Configure 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.
Вы должны отключить, по крайней мере, те, что выделины жирным шрифтом.
Теперь откройте какой-нибудь исходный файл (если вы этого ещё не сделали). Пункт меню Настройка->Настроить редактор... станет активным, вам нужно настроить параметры отступа, чтобы они соответствовали стилю, принятому в проекте, над которым вы работаете. Наиболее важные настройки:
В главном окне щёлкните по вкладке CTags, находящейся на нижнем таббаре, затем щёлкните по кнопке Regenerate, чтобы создать базу данных CTags для более лёгкой навигации по исходному коду.
Поздравляем! Все существенные настройки выполнены!
Обратитесь к мануалу по KDevelop, чтобы ознакомиться с общей информацией по использованию KDevelop. Данный раздел касается аспектов, специфичных для KDE 4.
Приложения KDE содержат много отладочных символов, что означает, что требуется большое количество памяти для достижения приемлемого времени запуска приложения во время отладки. Мнение одного из разработчиков GDB: "Мне было бы очень тяжело отлаживать KDE при наличии меньше 1 GB RAM". Если пошагавая отладка работает слишком медлено, то вам может помочь следующее:
| Note |
|---|
| KDevelop не поддерживает модификацию сборочной системы CMake. Это означает, что вы не можете использовать KDevelop, чтобы добавить или удалить файлы с проекта или изменить какие-либо параметры сборки. Вам необходимо модифицировать файлы CMake вручную, после чего запускать cmakekde. Ознакомьтесь с уроком по CMake, чтобы узнать, как это делать. |
| Tip |
|---|
| При работе над библиотеками, их надо установить перед тем, как тестировать или отлаживать изменения.
Из-за того, что это неудобно и занимает очень много времени, лучше для всех ваших библиотек в каталоге установки создавать символические ссылки (ln -s), указывающие на файлы из каталога сборки Обычно, даже простые программы используют внутренние библиотеки, например диалог настроек в Konsole является библиотекой. |