KDevelop4/Manual/Sessions and projects/ru: Difference between revisions

    From KDE UserBase Wiki
    (Created page with "{{Prevnext2 | prevpage=Special:MyLanguage/Kdevelop4/Manual/Meet_KDevelop | nextpage=Special:MyLanguage/KDevelop4/Manual/Working_with_source_code | prevtext=Знакомство ...")
    (Updating to match new version of source page)
     
    (13 intermediate revisions by 4 users not shown)
    Line 9: Line 9:
    '''KDevelop''' придерживается концепции ''сеансов'' и ''проектов''. Сеансы содержат все проекты, которые как-то связаны друг с другом. Например предположим, что Вы являетесь разработчиком как некоторой библиотеки, так и приложения, использующего её. К примеру, библиотеки KDE — это первое, а '''KDevelop''' — последнее. Другой пример: допустим что Вы хакер ядра Linux, но Вы так же работаете над драйвером устройства для Linux, который не может быть добавлен непосредственно в исходный код ядра.
    '''KDevelop''' придерживается концепции ''сеансов'' и ''проектов''. Сеансы содержат все проекты, которые как-то связаны друг с другом. Например предположим, что Вы являетесь разработчиком как некоторой библиотеки, так и приложения, использующего её. К примеру, библиотеки KDE — это первое, а '''KDevelop''' — последнее. Другой пример: допустим что Вы хакер ядра Linux, но Вы так же работаете над драйвером устройства для Linux, который не может быть добавлен непосредственно в исходный код ядра.


    И так, возьмём последний пример. Вам требуется создать сеанс в '''KDevelop''', который содержит два проекта: ядро Linux и драйвер устройства. Вы желаете объеденить их один сеанс (вместо того, чтобы иметь два сеанса с одним проектом на каждый) потому что будет удобнее видеть функции ядра и структуры данных в '''KDevelop''' всякий раз, когда Вы пишете код для драйвера. Это даст возможность автодополнения имён функций и переменных ядра, а так же Вы сможете прочитать документацию на функции ядра в процессе написания драйвера устройства.  
    И так, возьмём последний пример. Вам требуется создать сеанс в '''KDevelop''', который содержит два проекта: ядро Linux и драйвер устройства. Вы желаете объединить их один сеанс (вместо того, чтобы иметь два сеанса с одним проектом на каждый) потому что будет удобнее видеть функции ядра и структуры данных в '''KDevelop''' всякий раз, когда Вы пишете код для драйвера. Это даст возможность автодополнения имён функций и переменных ядра, а так же Вы сможете прочитать документацию на функции ядра в процессе написания драйвера устройства.  


    Теперь представим, что Вы так же являетесь разработчиком KDE. Теперь Вы желаете иметь второй сеанс, который содержиит KDE как проект. В приципе можно иметь один сеанс для всех проектов, но нет никаких основательных причин для этого: в Вашей разработке KDE Вам незачем иметь доступ к функциям ядра и драйвера и у Вас не возникает желания иметь автодополнение имён классов KDE когда Вы работаете над ядром Linux. В конечном итоге сборка множества библиотек KDE независима от пересборки ядра Linux (при этом было бы неплохо иметь возможноть пересобрать ядро Linux в то время, когда происходит сборка драйвера, если в ядре изменились некоторые заголовочные файлы).
    Теперь представим, что Вы так же являетесь разработчиком KDE. Теперь Вы желаете иметь второй сеанс, который содержит KDE как проект. В принципе можно иметь один сеанс для всех проектов, но нет никаких основательных причин для этого: в Вашей разработке KDE Вам незачем иметь доступ к функциям ядра и драйвера и у Вас не возникает желания иметь автодополнение имён классов KDE когда Вы работаете над ядром Linux. В конечном итоге сборка множества библиотек KDE независима от пересборки ядра Linux (при этом было бы неплохо иметь возможность пересобрать ядро Linux в то время, когда происходит сборка драйвера, если в ядре изменились некоторые заголовочные файлы).


    В ином случае можно использовать разные сеансы для различных версий одного проекта. В этом случае Вам будет нежелательно иметь коллизии в различных реализациях одинаковых классов пересекающиеся между ветками одного проекта. Вы просто можете иметь два сеанса с похожим набором проектов, но отличающихся расположением в файловой системе в случае различных веток разработки.
    В ином случае можно использовать разные сеансы для различных версий одного проекта. В этом случае Вам будет нежелательно иметь коллизии в различных реализациях одинаковых классов пересекающиеся между ветками одного проекта. Вы просто можете иметь два сеанса с похожим набором проектов, но отличающихся расположением в файловой системе в случае различных веток разработки.
    Line 17: Line 17:
    === Создание сеанса и импорт существующих проектов ===
    === Создание сеанса и импорт существующих проектов ===


    Давайте придерживаться примера Linux ядра и драйвера устройства. Бесусловно Вы можете использовать в этом примере собственный набор библиотек и проектов. Чтобы создать новый сеанс, который содержит два проекта, перейдите в верхнее левое меню <menuchoice>Сеанс -> Запустить новый сеанс</menuchoice> (если Вы запустили '''Kdevelop''' впервые, то можно использовать сеанс по умолчанию, т.к. он всё равно ещё пустой).
    Давайте придерживаться примера Linux-ядра и драйвера устройства. Безусловно, Вы можете использовать в этом примере собственный набор библиотек и проектов. Чтобы создать новый сеанс, который содержит два проекта, перейдите в верхнее левое меню <menuchoice>Сеанс -> Запустить новый сеанс</menuchoice> (если Вы запустили '''Kdevelop''' впервые, то можно использовать сеанс по умолчанию, т.к. он всё равно ещё пустой).
    Далее мы желаем добавить к сеансу два проекта. На данный момент мы считаем, что эти проекты уже где-то созданы (случай с созданием проектов с нуля описывается в следующих разделах настоящего руководства). Для этого существует два способа, в зависимости от того, где находится проект: существует ли он на локальном диске, либо же должен быть загружен с сервера.
    Далее мы желаем добавить к сеансу два проекта. На данный момент мы считаем, что эти проекты уже где-то созданы (случай с созданием проектов с нуля описывается в следующих разделах настоящего руководства). Для этого существует два способа, в зависимости от того, где находится проект: существует ли он на локальном диске, либо же должен быть загружен с сервера.


    Line 24: Line 24:
    Давайте для начала предположим, что проект, который мы желаем создать — ядро Linux — находится в некоторой системе управления версиями и его локальная копия ещё не развёрнута на Вашем локальном диске. В таком случае перейдите к меню <menuchoice>Проект</menuchoice> для создания в существующей сессии проекта «ядро Linux» и выполните следующие действия:
    Давайте для начала предположим, что проект, который мы желаем создать — ядро Linux — находится в некоторой системе управления версиями и его локальная копия ещё не развёрнута на Вашем локальном диске. В таком случае перейдите к меню <menuchoice>Проект</menuchoice> для создания в существующей сессии проекта «ядро Linux» и выполните следующие действия:


    * Для импотра проекта откройте диалог из меню <menuchoice>Проект -> Загрузить проект</menuchoice>
    * Для импорта проекта откройте диалог из меню <menuchoice>Проект -> Загрузить проект</menuchoice>


    * Теперь у вас есть несколько вариантов начала нового проекта в текущем сеансе. В зависимости от того где находится исходный код, Вы можете просто выбрать существующий каталог с исходным кодом (см. способ 2) или попросить '''KDevelop''' получить исходный код из репозитория.
    * Теперь у вас есть несколько вариантов начала нового проекта в текущем сеансе. В зависимости от того где находится исходный код, Вы можете просто выбрать существующий каталог с исходным кодом (см. способ 2) или попросить '''KDevelop''' получить исходный код из репозитория.
    Line 32: Line 32:
    ** Выберите рабочую директорию в которую будет разворачиваться локальная копия из репозтитория
    ** Выберите рабочую директорию в которую будет разворачиваться локальная копия из репозтитория
    ** Выберите URL расположения репозитория, откуда могут браться исходные файлы
    ** Выберите URL расположения репозитория, откуда могут браться исходные файлы
    ** Нажмите кнопку <menuchoice>Загрузить</menuchoice>. Процесс создания локальной копии может занять продолжительное время в зависимости от скорости Вашего соединения и размера проекта. К сожалению в '''KDevelop''' 4.2.x индикатор состояния не показывает ничего, но Вы можете следить за процессом переодически запуская в командной строке команду {{Input|1=du -sk /path/to/KDevelop/project}}, чтобы посмотреть насколько данные уже загружены
    ** Нажмите кнопку <menuchoice>Загрузить</menuchoice>. Процесс создания локальной копии может занять продолжительное время в зависимости от скорости Вашего соединения и размера проекта. К сожалению в '''KDevelop''' 4.2.x индикатор состояния не показывает ничего, но Вы можете следить за процессом периодически запуская в командной строке команду {{Input|1=du -sk /path/to/KDevelop/project}}, чтобы посмотреть насколько данные уже загружены


    {{Note|1=Проблема с индикатором состояния описывается в [http://bugs.kde.org/show_bug.cgi?id=256832 ошибке KDevelop 256832].}}
    {{Note/ru|1=Проблема с индикатором состояния описывается в [http://bugs.kde.org/show_bug.cgi?id=256832 ошибке KDevelop 256832].}}
    {{Note|1=В процессе создания локальной копии может так же появиться сообщение ''You need to specify a valid location for the project'' (от переводчика: «Вы должны указать правильное расположение для проекта» — на данный момент это сообщение в интерфейсе '''KDevelop''' не переведено на русский язык) которое может быть проигнорировано.}}
    {{Note/ru|1=В процессе создания локальной копии может так же появиться сообщение ''You need to specify a valid location for the project'' (от переводчика: «Вы должны указать правильное расположение для проекта» — на данный момент это сообщение в интерфейсе '''KDevelop''' не переведено на русский язык) которое может быть проигнорировано.}}


    * Теперь Вам будет предложено выбрать файл проекта '''KDevelop''' в выбранной директории. Так как его вероятно ещё нет, просто нажмите кнопку <menuchoice>Далее</menuchoice>.
    * Теперь Вам будет предложено выбрать файл проекта '''KDevelop''' в выбранной директории. Так как его вероятно ещё нет, просто нажмите кнопку <menuchoice>Далее</menuchoice>.
    Line 47: Line 47:
    ==== Способ 2: Импорт проекта, который уже находится на Вашем жестком диске ====
    ==== Способ 2: Импорт проекта, который уже находится на Вашем жестком диске ====


    В ином случае, если проект с которым Вы желаете работать уже присутствует на жёстком диске (например потому, что Вы скачали его как tar архив с FTP сервера, либо Вы уже развернули у себя локальную копию из репозитория системы управления версиями или это Ваш собственный проект, который присутствует ''только'' на Вашем жёстком диске), то используйте <menuchoice>Проект -> Открыть проект</menuchoice> и в диалоговом окне выбрать директорию в котором находится Ваш проект.
    В ином случае, если проект с которым Вы желаете работать уже присутствует на жёстком диске (например потому, что Вы скачали его как tar архив с FTP сервера, либо Вы уже развернули у себя локальную копию из репозитория системы управления версиями или это Ваш собственный проект, который присутствует ''только'' на Вашем жёстком диске), то используйте <menuchoice>Проект -> Открыть проект</menuchoice> и в диалоговом окне выбрать директорию в котором находится Ваш проект.
    <span id="Setting up an application as a second project"></span>
    <span id="Setting up an application as a second project"></span>
    === Настройка приложения в качестве второго проекта ===
    === Настройка приложения в качестве второго проекта ===
    Line 57: Line 57:
    === Создание проекта с нуля ===
    === Создание проекта с нуля ===


    Существует и такая вероятность, что Вы желаете начать проект с нуля. Это может быть сделано с помощью пункта меню <menuchoice>Проект -> Создать из шаблона</menuchoice>. Детали создания такого проекта описаны далее в этом руководстве.
    Конечно же, вы можете воспользоваться новым проектом. Создать новый проект можно с помощью пункта меню <menuchoice>Проекты -> Создать по шаблону</menuchoice>, который открывает диалоговое окно выбора шаблона. Некоторые из шаблонов устанавливаются с основным пакетом "'KDevelop"', другие же можно установить вместе с программой "'KAppTemplate"'. Выберите в диалоговом окне тип проекта и язык программирования, укажите имя и местоположение вашего проекта и нажмите кнопку <menuchoice>Дальше</menuchoice>.
     
    [[Image:kdevelop-project-dialog.png|thumb|500px|center]]
     
    С помощью второй странице диалогового окна вы можете настроить систему управления версиями. Выберите желаемую для вас систему и заполните соответствующие поля параметров. Если вы не хотите пользоваться системой управления версиями или хотите определить ее параметры позже, выберите пункт <menuchoice>Нет</menuchoice>. Как только определения соответствующих параметров будет завершено, можете нажать кнопку <menuchoice>Завершить</menuchoice>.  
     
    Теперь ваш проект создан, вы можете попробовать собрать и установить его. В некоторых моделях предусмотрено комментарии в коде или даже отдельный файл README. Рекомендуем ознакомиться с содержанием такого файла до того, как будет начато дальнейшую разработку. После ознакомления со всеми справочными материалами можно начать работу над проектом и добавления нужных вам возможностей.  


    {{Prevnext2
    {{Prevnext2
    Line 65: Line 71:
    }}
    }}


    [[Category:Development]]
    [[Category:Разработка/ru]]

    Latest revision as of 05:00, 19 April 2018

    Other languages:

    Сеансы и проекты: основы 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 получить исходный код из репозитория.
    • Предположим, что у Вас ещё не развёрнута локальная копия из репозитория проекта:
      • В диалоговом окне под надписью Выберите источник выберите систему управления версиями Subversion, Git или иную, которую использует проект
      • Выберите рабочую директорию в которую будет разворачиваться локальная копия из репозтитория
      • Выберите URL расположения репозитория, откуда могут браться исходные файлы
      • Нажмите кнопку Загрузить. Процесс создания локальной копии может занять продолжительное время в зависимости от скорости Вашего соединения и размера проекта. К сожалению в KDevelop 4.2.x индикатор состояния не показывает ничего, но Вы можете следить за процессом периодически запуская в командной строке команду
        du -sk /path/to/KDevelop/project
        , чтобы посмотреть насколько данные уже загружены

    Примечание

    Проблема с индикатором состояния описывается в ошибке KDevelop 256832.


    Примечание

    В процессе создания локальной копии может так же появиться сообщение You need to specify a valid location for the project (от переводчика: «Вы должны указать правильное расположение для проекта» — на данный момент это сообщение в интерфейсе KDevelop не переведено на русский язык) которое может быть проигнорировано.


    • Теперь Вам будет предложено выбрать файл проекта KDevelop в выбранной директории. Так как его вероятно ещё нет, просто нажмите кнопку Далее.
    • Нажмите кнопку Далее снова
    • KDevelop попросит Вас выбрать систему автоматизации сборки проекта. Если проект использует стандартные Unix make файлы, выберите вариант «Работа с проектами на основе вручную составляемых файлов Makefile»
    • Затем KDevelop проанализирует весь проект. Это снова займёт некоторое время, необходимое для прохождения всех файлов, индексации классов и т.п. В нижней правой части главного окна есть индикатор, отображающий продолжительность процесса. (Если Ваш процессор имеет несколько ядер, Вы можете ускорить процесс индексации. Для этого пройдите в пункт меню Настройка -> Настроить KDevelop, затем выберите Фоновый анализ кода в меню левой части окна и увеличьте максимальное количество нитей в правой части окна.)

    Способ 2: Импорт проекта, который уже находится на Вашем жестком диске

    В ином случае, если проект с которым Вы желаете работать уже присутствует на жёстком диске (например потому, что Вы скачали его как tar архив с FTP сервера, либо Вы уже развернули у себя локальную копию из репозитория системы управления версиями или это Ваш собственный проект, который присутствует только на Вашем жёстком диске), то используйте Проект -> Открыть проект и в диалоговом окне выбрать директорию в котором находится Ваш проект.

    Настройка приложения в качестве второго проекта

    Теперь Вам нужно создать другие проекты в той же сессии. Для приведённого выше примера Вы хотели бы добавить драйвер устройства в качестве второго проекта, что можно сделать, повторив в точности вышеописанные шаги.

    Если Вы имеете несколько приложений и библиотек, просто повторите эти шаги необходимое количество раз.

    Создание проекта с нуля

    Конечно же, вы можете воспользоваться новым проектом. Создать новый проект можно с помощью пункта меню Проекты -> Создать по шаблону, который открывает диалоговое окно выбора шаблона. Некоторые из шаблонов устанавливаются с основным пакетом "'KDevelop"', другие же можно установить вместе с программой "'KAppTemplate"'. Выберите в диалоговом окне тип проекта и язык программирования, укажите имя и местоположение вашего проекта и нажмите кнопку Дальше.

    С помощью второй странице диалогового окна вы можете настроить систему управления версиями. Выберите желаемую для вас систему и заполните соответствующие поля параметров. Если вы не хотите пользоваться системой управления версиями или хотите определить ее параметры позже, выберите пункт Нет. Как только определения соответствующих параметров будет завершено, можете нажать кнопку Завершить.

    Теперь ваш проект создан, вы можете попробовать собрать и установить его. В некоторых моделях предусмотрено комментарии в коде или даже отдельный файл README. Рекомендуем ознакомиться с содержанием такого файла до того, как будет начато дальнейшую разработку. После ознакомления со всеми справочными материалами можно начать работу над проектом и добавления нужных вам возможностей.