KDevelop4/Manual/Sessions and projects/ru: Difference between revisions
No edit summary |
(fix typo) |
||
Line 9: | Line 9: | ||
'''KDevelop''' придерживается концепции ''сеансов'' и ''проектов''. Сеансы содержат все проекты, которые как-то связаны друг с другом. Например предположим, что Вы являетесь разработчиком как некоторой библиотеки, так и приложения, использующего её. К примеру, библиотеки KDE — это первое, а '''KDevelop''' — последнее. Другой пример: допустим что Вы хакер ядра Linux, но Вы так же работаете над драйвером устройства для Linux, который не может быть добавлен непосредственно в исходный код ядра. | '''KDevelop''' придерживается концепции ''сеансов'' и ''проектов''. Сеансы содержат все проекты, которые как-то связаны друг с другом. Например предположим, что Вы являетесь разработчиком как некоторой библиотеки, так и приложения, использующего её. К примеру, библиотеки KDE — это первое, а '''KDevelop''' — последнее. Другой пример: допустим что Вы хакер ядра Linux, но Вы так же работаете над драйвером устройства для Linux, который не может быть добавлен непосредственно в исходный код ядра. | ||
И так, возьмём последний пример. Вам требуется создать сеанс в '''KDevelop''', который содержит два проекта: ядро Linux и драйвер устройства. Вы желаете | И так, возьмём последний пример. Вам требуется создать сеанс в '''KDevelop''', который содержит два проекта: ядро Linux и драйвер устройства. Вы желаете объединить их один сеанс (вместо того, чтобы иметь два сеанса с одним проектом на каждый) потому что будет удобнее видеть функции ядра и структуры данных в '''KDevelop''' всякий раз, когда Вы пишете код для драйвера. Это даст возможность автодополнения имён функций и переменных ядра, а так же Вы сможете прочитать документацию на функции ядра в процессе написания драйвера устройства. | ||
Теперь представим, что Вы так же являетесь разработчиком KDE. Теперь Вы желаете иметь второй сеанс, который содержиит KDE как проект. В приципе можно иметь один сеанс для всех проектов, но нет никаких основательных причин для этого: в Вашей разработке KDE Вам незачем иметь доступ к функциям ядра и драйвера и у Вас не возникает желания иметь автодополнение имён классов KDE когда Вы работаете над ядром Linux. В конечном итоге сборка множества библиотек KDE независима от пересборки ядра Linux (при этом было бы неплохо иметь возможноть пересобрать ядро Linux в то время, когда происходит сборка драйвера, если в ядре изменились некоторые заголовочные файлы). | Теперь представим, что Вы так же являетесь разработчиком KDE. Теперь Вы желаете иметь второй сеанс, который содержиит KDE как проект. В приципе можно иметь один сеанс для всех проектов, но нет никаких основательных причин для этого: в Вашей разработке KDE Вам незачем иметь доступ к функциям ядра и драйвера и у Вас не возникает желания иметь автодополнение имён классов KDE когда Вы работаете над ядром Linux. В конечном итоге сборка множества библиотек KDE независима от пересборки ядра Linux (при этом было бы неплохо иметь возможноть пересобрать ядро Linux в то время, когда происходит сборка драйвера, если в ядре изменились некоторые заголовочные файлы). |
Revision as of 12:13, 2 October 2011
Сеансы и проекты: основы KDevelop
В этом разделе мы рассмотрим некоторые термины, как KDevelop смотрит на мир и каковы принципы работы с ним. В частности, вводится понятие сеансов и проектов и описание как можно создать проект с которым Вы будете работать в KDevelop.
Терминология
KDevelop придерживается концепции сеансов и проектов. Сеансы содержат все проекты, которые как-то связаны друг с другом. Например предположим, что Вы являетесь разработчиком как некоторой библиотеки, так и приложения, использующего её. К примеру, библиотеки KDE — это первое, а KDevelop — последнее. Другой пример: допустим что Вы хакер ядра Linux, но Вы так же работаете над драйвером устройства для Linux, который не может быть добавлен непосредственно в исходный код ядра.
И так, возьмём последний пример. Вам требуется создать сеанс в KDevelop, который содержит два проекта: ядро Linux и драйвер устройства. Вы желаете объединить их один сеанс (вместо того, чтобы иметь два сеанса с одним проектом на каждый) потому что будет удобнее видеть функции ядра и структуры данных в KDevelop всякий раз, когда Вы пишете код для драйвера. Это даст возможность автодополнения имён функций и переменных ядра, а так же Вы сможете прочитать документацию на функции ядра в процессе написания драйвера устройства.
Теперь представим, что Вы так же являетесь разработчиком KDE. Теперь Вы желаете иметь второй сеанс, который содержиит KDE как проект. В приципе можно иметь один сеанс для всех проектов, но нет никаких основательных причин для этого: в Вашей разработке KDE Вам незачем иметь доступ к функциям ядра и драйвера и у Вас не возникает желания иметь автодополнение имён классов KDE когда Вы работаете над ядром Linux. В конечном итоге сборка множества библиотек KDE независима от пересборки ядра Linux (при этом было бы неплохо иметь возможноть пересобрать ядро Linux в то время, когда происходит сборка драйвера, если в ядре изменились некоторые заголовочные файлы).
В ином случае можно использовать разные сеансы для различных версий одного проекта. В этом случае Вам будет нежелательно иметь коллизии в различных реализациях одинаковых классов пересекающиеся между ветками одного проекта. Вы просто можете иметь два сеанса с похожим набором проектов, но отличающихся расположением в файловой системе в случае различных веток разработки.
Создание сеанса и импорт существующих проектов
Давайте придерживаться примера Linux ядра и драйвера устройства. Бесусловно Вы можете использовать в этом примере собственный набор библиотек и проектов. Чтобы создать новый сеанс, который содержит два проекта, перейдите в верхнее левое меню
(если Вы запустили Kdevelop впервые, то можно использовать сеанс по умолчанию, т.к. он всё равно ещё пустой). Далее мы желаем добавить к сеансу два проекта. На данный момент мы считаем, что эти проекты уже где-то созданы (случай с созданием проектов с нуля описывается в следующих разделах настоящего руководства). Для этого существует два способа, в зависимости от того, где находится проект: существует ли он на локальном диске, либо же должен быть загружен с сервера.Способ 1: Импорт проекта с сервера системы управления версиями
Давайте для начала предположим, что проект, который мы желаем создать — ядро Linux — находится в некоторой системе управления версиями и его локальная копия ещё не развёрнута на Вашем локальном диске. В таком случае перейдите к меню
для создания в существующей сессии проекта «ядро Linux» и выполните следующие действия:- Для импотра проекта откройте диалог из меню
- Теперь у вас есть несколько вариантов начала нового проекта в текущем сеансе. В зависимости от того где находится исходный код, Вы можете просто выбрать существующий каталог с исходным кодом (см. способ 2) или попросить KDevelop получить исходный код из репозитория.
- Предположим, что у Вас ещё не развёрнута локальная копия из репозитория проекта:
- В диалоговом окне под надписью выберите систему управления версиями , или иную, которую использует проект
- Выберите рабочую директорию в которую будет разворачиваться локальная копия из репозтитория
- Выберите URL расположения репозитория, откуда могут браться исходные файлы
- Нажмите кнопку
du -sk /path/to/KDevelop/project
, чтобы посмотреть насколько данные уже загружены . Процесс создания локальной копии может занять продолжительное время в зависимости от скорости Вашего соединения и размера проекта. К сожалению в KDevelop 4.2.x индикатор состояния не показывает ничего, но Вы можете следить за процессом переодически запуская в командной строке команду
- Теперь Вам будет предложено выбрать файл проекта KDevelop в выбранной директории. Так как его вероятно ещё нет, просто нажмите кнопку .
- Нажмите кнопку снова
- KDevelop попросит Вас выбрать систему автоматизации сборки проекта. Если проект использует стандартные Unix make файлы, выберите вариант «Работа с проектами на основе вручную составляемых файлов Makefile»
- Затем KDevelop проанализирует весь проект. Это снова займёт некоторое время, необходимое для прохождения всех файлов, индексации классов и т.п. В нижней правой части главного окна есть индикатор, отображающий продолжительность процесса. (Если Ваш процессор имеет несколько ядер, Вы можете ускорить процесс индексации. Для этого пройдите в пункт меню , затем выберите в меню левой части окна и увеличьте максимальное количество нитей в правой части окна.)
Способ 2: Импорт проекта, который уже находится на Вашем жестком диске
В ином случае, если проект с которым Вы желаете работать уже присутствует на жёстком диске (например потому, что Вы скачали его как tar архив с FTP сервера, либо Вы уже развернули у себя локальную копию из репозитория системы управления версиями или это Ваш собственный проект, который присутствует только на Вашем жёстком диске), то используйте
и в диалоговом окне выбрать директорию в котором находится Ваш проект.Настройка приложения в качестве второго проекта
Теперь Вам нужно создать другие проекты в той же сессии. Для приведённого выше примера Вы хотели бы добавить драйвер устройства в качестве второго проекта, что можно сделать, повторив в точности вышеописанные шаги.
Если Вы имеете несколько приложений и библиотек, просто повторите эти шаги необходимое количество раз.
Создание проекта с нуля
Существует и такая вероятность, что Вы желаете начать проект с нуля. Это может быть сделано с помощью пункта меню
. Детали создания такого проекта описаны далее в этом руководстве.