<chapter id="applicationwizard"> <chapterinfo> <authorgroup> <author ><firstname >Bernd</firstname ><surname >Pol</surname ></author> <!-- ROLES_OF_TRANSLATORS --> </authorgroup> </chapterinfo> <title >Начало работы — создание проекта</title> <!-- FIXME (bp, 2006-06-18) This is a misnomer. It should be something like --> <!-- Working With Projects --> <!-- featuring the application manager as part of the New Projects section. --> <indexterm zone="applicationwizard"> <primary >Создание проекта</primary ></indexterm> <para >В &kdevelop; разработка программного обеспечения организована в рамках <emphasis >проектов</emphasis >. Проект содержит всё, что относится к данному задаче программирования: файлы исходного кода, файлы данных, средства управления, в том числе система сборки, доступ ко всем компонентам и к любым дополнительным инструментам. Словом всё, что нужно для получения реально работающей программы. </para> <para >Такая организация позволяет легко переключаться между независимыми задачами. Это очень удобно, если вы работаете над несколькими приложениями одновременно, что бывает очень часто. Откройте проект в &kdevelop; и вы сразу сможете продолжить работу над ним с того места, где остановились в прошлый раз. </para> <sect1 id="new-projects"> <title >Новые проекты</title> <!-- TODO (bp, 2006-06-18) This whole section must be completely rewritten. --> <!-- There is no need for a tutorial habit anymore. --> <indexterm zone="new-projects"> <primary >проект</primary> <secondary >новый</secondary ></indexterm> <para >При создании нового проекта нужно выполнить множество формальных процедур: указать структуру папок проекта, создать базовые заголовочные файлы и файлы реализации, осуществить первоначальную настройку сборочной системы и так далее. </para> <para >&kdevelop; обеспечивает простой способ создания нового проекта — <emphasis >Мастер создания нового проекта</emphasis >. Его можно запустить из меню <menuchoice ><guimenu >Проект</guimenu ><guimenuitem >Создать проект</guimenuitem ></menuchoice >. </para> <para >Мастер проекта значительно упрощает и автоматизирует создание нового проекта: </para> <orderedlist> <listitem ><para >На первом этапе вы можете использовать один из предлагаемых шаблонов проектов. </para ></listitem> <listitem ><para >Там же необходимо указать некоторую <link linkend="new-projects-start-general" > общую информацию</link > по проекту: названия приложения, его размещения и так далее. </para ></listitem> <listitem ><para >На следующем шаге решите, будете ли вы использовать <link linkend="new-projects-start-cvs" >систему контроля версий</link >, такую, как например, CVS, и, если будете, укажите необходимые данные. </para ></listitem> <listitem ><para >Выберите шаблоны для <link linkend="new-projects-start-templates" >заголовочных файлов и файлов реализации</link > (если есть). </para ></listitem> <listitem ><para >Теперь осталось <link linkend="new-projects-start-build" >сгенерировать начальные файлы</link >, структуру папок, начальные заголовочные файлы, файлы реализации и служебные файлы для управления проектом, например каркас для make. </para ></listitem> </orderedlist> <para >И это всё! Теперь у вас есть база для начала продуктивной работы. </para> <para >А теперь рассмотрим это более подробно... </para> <sect2 id="new-projects-start"> <title >Начальные шаги</title> <indexterm zone="new-projects-start"> <primary >диалог</primary> <secondary >Новый проект</secondary ></indexterm> <indexterm zone="new-projects-start"> <primary >проект</primary> <secondary >Новый проект</secondary> <tertiary >диалог</tertiary ></indexterm> <indexterm zone="new-projects-start"> <primary >проект</primary> <secondary >шаблоны</secondary ></indexterm> <indexterm zone="new-projects-start"> <primary >шаблоны</primary> <secondary >проект</secondary ></indexterm> <para >Чтобы создать новый проект, выберите пункт <guimenuitem >Создать проект</guimenuitem > из меню <guimenu >Проект</guimenu >: </para> <screenshot id="screenshot-newprojectwizard"> <mediaobject> <imageobject> <imagedata fileref="create-new-project.png" format="PNG"/> </imageobject> <caption ><para >Начало создания проекта </para ></caption> </mediaobject> </screenshot> <para >Диалог разделён на две части. В верхней вы можете выбрать язык программирования, который будет использоваться для написания программы, нижняя служит для ввода некоторой общей информации. </para> <sect3 id="new-projects-start-type"> <title >Выбор языка программирования и типа приложения</title> <indexterm zone="new-projects-start-type"> <primary >проект</primary> <secondary >тип приложения</secondary ></indexterm> <indexterm zone="new-projects-start-type"> <primary >проект</primary> <secondary >язык программирования</secondary ></indexterm> <indexterm zone="new-projects-start-type"> <primary >проект</primary> <secondary >язык</secondary ></indexterm> <indexterm zone="new-projects-start-type"> <primary >язык</primary ></indexterm> <indexterm zone="new-projects-start-type"> <primary >язык программирования</primary ></indexterm> <indexterm zone="new-projects-start-type"> <primary >приложение</primary> <secondary >тип</secondary ></indexterm> <para >Слева вверху находится список доступных языков программирования, например: </para> <itemizedlist> <listitem ><para >C++ <indexterm> <primary >C++</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >C <indexterm> <primary >C</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >C++ <indexterm> <primary >C++</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >База данных (проекты на SQL) <indexterm> <primary >SQL</primary> <secondary >новый проект</secondary ></indexterm> <indexterm> <primary >База данных</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >Fortran <indexterm> <primary >Fortran</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >Haskell <indexterm> <primary >Haskell</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >Java <indexterm> <primary >Java</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >PHP <indexterm> <primary >PHP</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >Pascal <indexterm> <primary >Pascal</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >Perl <indexterm> <primary >Perl</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >Python <indexterm> <primary >Python</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >Ruby <indexterm> <primary >Ruby</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> <listitem ><para >Оболочка (скрипты на Bash) <indexterm> <primary >Bash</primary> <secondary >новый проект</secondary ></indexterm> <indexterm> <primary >оболочка</primary> <secondary >новый проект</secondary ></indexterm> </para ></listitem> </itemizedlist> <para >Эти папки не содержат собственно средств языка, в них располагаются только <emphasis >шаблоны</emphasis > новых проектов, то есть отправная точка для начала разработки на том или другом языке. Если вы раскроете все папки, то увидите множество отдельных шаблонов в зависимости от типа поставленной задачи и сферы применения. </para> <para >При выборе шаблона в правой части окна показывается его <emphasis >краткое описание</emphasis > и <emphasis >снимок экрана</emphasis > главного окна приложения, основанного на выбранном шаблоне. </para> <para >Выберите шаблон, наиболее точно отвечающий вашим целям. Затем введите общую информацию, как описано ниже. </para> <formalpara> <title >Выбор системы управления проектом</title> <para >Каждый шаблон привязан к определённой <link linkend="makesystems" >системе управления проектом</link >. </para> </formalpara> </sect3 > <!-- new-projects-start-type --> <sect3 id="new-projects-start-general"> <title >Указание общей информации</title> <indexterm zone="new-projects-start-general"> <primary >проект</primary> <secondary >свойства</secondary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >свойства</primary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >приложение</primary> <secondary >имя</secondary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >имя</primary> <secondary >приложение</secondary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >проект</primary> <secondary >папка</secondary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >папка</primary> <secondary >проект</secondary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >Расположение</primary> <secondary >новый проект</secondary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >проект</primary> <secondary >автор</secondary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >проект</primary> <secondary >электронная почта</secondary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >автор</primary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >электронная почта</primary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >проект</primary> <secondary >main.cpp</secondary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >main.cpp</primary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >проект</primary> <secondary >лицензия</secondary ></indexterm> <indexterm zone="new-projects-start-general"> <primary >лицензия</primary ></indexterm> <para >В нижнем разделе <guilabel >Свойства</guilabel > диалога <guilabel >Новый проект</guilabel > можно указать его <guilabel >свойства</guilabel > — данные для построения структуры проекта. </para> <formalpara> <title >Имя приложения</title> <para >Введите его в верхнее поле <guilabel >свойств</guilabel > с соответствующим названием. В нашем примере это <quote >MyApp</quote >. </para> </formalpara> <para >Обратите внимание, что в имени разрешается использовать только такие символы: <itemizedlist> <listitem ><para >английские буквы в нижнем и верхнем регистрах</para ></listitem> <listitem ><para >цифры</para ></listitem> <listitem ><para >символ подчёркивания</para ></listitem> </itemizedlist> </para> <para >Эти ограничения установлены в связи с тем, что указанное имя будет использовано для <emphasis >именования некоторых классов</emphasis > в создаваемом проекте. Поэтому ограничения на имя приложения отражают ограничения на именование переменных в языках программирования. </para> <formalpara> <title >Конечное расположение</title> <para >Также имя приложения будет использовано при формировании <guilabel >конечного расположения</guilabel > создаваемого проекта. </para> </formalpara> <para >Имя приложения переводится в нижний регистр и добавляется к указанному расположению. </para> <para >Если сформированный по имени приложения путь уже существует, кнопка <guibutton >Далее ></guibutton > будет неактивна (серого цвета) и мастер известит вас об этом ещё и сообщением. </para> <formalpara> <title >Конечное расположение</title> <para >Есть два способа выбрать другой каталог для вашего приложения — указать другое имя или изменить расположение проектов. </para> </formalpara> <para >Второй вариант можно осуществить во втором поле <guilabel >свойств</guilabel > с названием <guilabel >Расположение</guilabel >. Здесь вы должны ввести <emphasis >путь к каталогу</emphasis >, в котором будет создан подкаталог с именем проекта (в котором, в свою очередь, будут созданы другие подкаталоги разработки). Полный путь к проекту будет показан в поле <guilabel >Конечное расположение</guilabel >. </para> <para >При открытии диалога поле <guilabel >Расположение</guilabel > заполняется автоматически. Значение для него берётся из поля <guilabel >Каталог проектов по умолчанию:</guilabel > в <link linkend="setup-general" >главном разделе диалога настройки KDevelop</link >. В нашем случае в качестве основного пути для новых проектов используется каталог <filename class="directory" >/home/devel/projects/</filename >. </para> <para >Убедитесь что каталог проекта, указанный в поле <guilabel >Конечное расположение</guilabel > не существует в вашей файловой системе. </para> <!--TODO add tab description Project Options --> <note ><para >Однако путь, указанный в поле <guilabel >Расположение</guilabel > должен существовать. Если это не так, мастер создания проекта сообщит об этом добавлением <quote >(неверно)</quote > в строку <guilabel >Конечное расположение</guilabel >. </para ></note> <screenshot id="screenshot-createnewprojectoptions"> <mediaobject> <imageobject> <imagedata fileref="createnewprojectoptions.png" format="PNG"/> </imageobject> <caption ><para >Настройка CVS для создаваемого проекта </para ></caption> </mediaobject> </screenshot> <formalpara> <title >Параметры проекта</title> <para >Данные, которые показываются на втором шаге, не являются критичными для проекта. Просто укажите ваше имя (то есть имя автора программы, к которому можно будет обращаться по поводу её работы и развития) в поле <guilabel >Автор</guilabel > и правильный адрес электронной почты в поле <guilabel >Электронная почта</guilabel > чтобы пользователи программы могли поддерживать с вами связь. </para> </formalpara> <note> <orderedlist> <listitem ><para >Мастер постарается заполнить их значениями, взятыми из соответствующих разделов Центра управления KDE. </para ></listitem> <listitem ><para >Эта информация будет встроена в шаблоны программных файлов. Например, для программ &kde; C++ вы сможете найти её в начале файла <filename >main.cpp</filename >. </para ></listitem> <listitem ><para >Из всех полей, <emphasis >необязательным</emphasis > является <guilabel >Электронная почта</guilabel >, так как не все разработчики могут иметь доступ в Интернет. </para ></listitem> </orderedlist> </note> <formalpara> <title >Версия и лицензия</title> <para >Введите номер версии, с которого нужно начать, и лицензию, в соответствии с которой вы хотите распространять ваше приложение. </para> </formalpara> <para >Если вы выбрали тип приложения (например, C или C++), к которому существуют шаблоны программных файлов, на следующих этапах вы можете увидеть уведомление о лицензии в (см. раздел «<link linkend="new-projects-start-templates" >Шаблоны программных файлов</link >»). </para> <para >Если вы выбрали <quote >другую</quote > <guilabel >лицензию</guilabel >, вам нужно будет ввести её текст самостоятельно. </para> <note ><para >Информация о версии и используемой лицензии также будет встроена в шаблоны программных файлов, в форме, удобной для изменения. </para ></note> <para >Нажмите кнопку <guibutton >Далее ></guibutton >. </para> </sect3 > <!-- new-projects-start-general --> </sect2 > <!-- new-projects-start --> <sect2 id="new-projects-start-cvs"> <title >Система управления версиями</title> <indexterm zone="new-projects-start-cvs"> <primary >CVS</primary> <secondary >новый проект</secondary ></indexterm> <indexterm zone="new-projects-start-cvs"> <primary >проект</primary> <secondary >CVS</secondary ></indexterm> <indexterm zone="new-projects-start-cvs"> <primary >база данных</primary> <secondary >CVS</secondary ></indexterm> <indexterm zone="new-projects-start-cvs"> <primary >версия</primary> <secondary >база данных</secondary ></indexterm> <indexterm zone="new-projects-start-cvs"> <primary >версия</primary> <secondary >CVS</secondary ></indexterm> <para >Здесь вы можете выбрать <guilabel >систему контроля версий</guilabel >. </para> <note ><para >Здесь всё зависит от проекта, подробности о &CVS; вы можете найти в главе <link linkend="cvs" >Использование &CVS;</link >. </para ></note> <formalpara> <title >Система контроля версий не нужна</title> <para >По умолчанию <guilabel >Система контроля версий</guilabel > для проекта <guilabel >Не используется</guilabel >. Если вы не хотите использовать эту функцию, просто нажмите <guibutton >Далее ></guibutton >. </para> </formalpara> <formalpara> <title >Использование &CVS;</title> <para >В нашем примере мы используем <quote >&CVS;</quote >. Если вы выберете эту систему контроля версий, будут показаны поля, которые нужно заполнить. </para> </formalpara> <screenshot id="screenshot-newproject-cvs"> <mediaobject> <imageobject> <imagedata fileref="create-new-project-cvs.png" format="PNG"/> </imageobject> <caption ><para >Настройка CVS для создаваемого проекта </para ></caption> </mediaobject> </screenshot> <para >Система контроля версий, такая как &CVS; (<quote >Concurrent Versions System</quote >, система конкурирующих версий) записывает копии файлов проекта в некоторое подобие базы данных. В &CVS; вы можете передать файлы (<quote >commit</quote >) в репозиторий или загрузить их обратно (<quote >checkout</quote >или <quote >update</quote >). Особенностью системы контроля версий является структурный метод хранения файлов, который всегда позволяет вернуться к более раннему состоянию разработки, если вы допустили неисправимые ошибки. &CVS; также позволяет сотрудничать нескольким разработчикам в большом проекте (как &kdevelop;), не вмешиваясь в работу друг друга. </para> <indexterm zone="new-projects-start-cvs-root"> <primary >CVS</primary> <secondary >репозиторий</secondary ></indexterm> <indexterm zone="new-projects-start-cvs-root"> <primary >репозиторий</primary> <secondary >CVS</secondary ></indexterm> <indexterm zone="new-projects-start-cvs-root"> <primary >CVS</primary> <secondary >локальный</secondary ></indexterm> <indexterm zone="new-projects-start-cvs-root"> <primary >CVS</primary> <secondary >удалённый</secondary ></indexterm> <indexterm zone="new-projects-start-cvs-root"> <primary >локальный репозиторий CVS</primary ></indexterm> <indexterm zone="new-projects-start-cvs-root"> <primary >:local:</primary ></indexterm> <indexterm zone="new-projects-start-cvs-root"> <primary >CVS</primary> <secondary >:local:</secondary ></indexterm> <formalpara id="new-projects-start-cvs-root"> <title >Локальный репозиторий &CVS;</title> <para >&CVS; ведёт собственную базу данных версий файлов, которая хранится в так называемом <emphasis >корне &CVS;</emphasis >. Вам нужно будет указать путь к корню &CVS;, если вы хотите использовать эту систему управления версиями. </para> </formalpara> <para ><emphasis >Расположение локального &CVS;.</emphasis > Если вы разрабатываете программу самостоятельно, использование &CVS; локально пригодится как удобная система резервного копирования. Обычно она располагается в вашем домашнем каталоге под именем <filename >cvsroot</filename >: </para> <para ><userinput ><filename class="directory" >/home/devel/cvsroot</filename ></userinput > (где <filename >devel</filename > — имя пользователя в системе) </para> <note ><para >Это краткая форма — на самом деле, перед ней должна быть приставка <computeroutput >:local:</computeroutput >. Использование краткой формы разрешено только если она начинается со слэша (<computeroutput >/</computeroutput >). То есть полный адрес корня локального &CVS; будет выглядеть так: <filename class="directory" >:local:/home/devel/cvsroot</filename >. </para ></note> <para >Введите путь к корню &CVS;. </para> <para ><emphasis >Создание локального корня &CVS;.</emphasis > Если локальный корень &CVS; не существует, &kdevelop; может изменить это с помощью команды &CVS;. Для этого нажмите кнопку <guibutton >Создать локальный репозиторий</guibutton >. </para> <note ><para >&kdevelop; только <emphasis >передаёт команды</emphasis > системе &CVS; на создание репозитория, не делая ничего самостоятельно. К счастью, &CVS; продуман достаточно хорошо, и, перед созданием нового репозитория &CVS; в указанном вами каталоге, проверяет наличие в нём уже существующего корня &CVS; в нём. </para ></note> <para ><emphasis >Удалённый &CVS;.</emphasis >Возможно вы захотите расположить репозиторий на удалённом сервере, особенно если над проектом работает несколько разработчиков. Тогда введите <acronym >URL</acronym > репозитория &CVS; в поле <guilabel >Репозиторий</guilabel >. Например, чтобы подключиться к серверу &CVS; &kde;: </para> <para ><userinput ><filename class="directory" >:pserver:<replaceable >mylogin</replaceable >@cvs.kde.org:/home/kde</filename ></userinput >, где <replaceable >mylogin</replaceable > соответствует имени регистрации вашей учётной записи &CVS; в репозитории &kde;. </para> <indexterm zone="new-projects-start-cvs-remote"> <primary >удалённый репозиторий</primary ></indexterm> <indexterm zone="new-projects-start-cvs-remote"> <primary >:pserver:</primary ></indexterm> <indexterm zone="new-projects-start-cvs-remote"> <primary >:ext:</primary ></indexterm> <indexterm zone="new-projects-start-cvs-remote"> <primary >CVS</primary> <secondary >:local:</secondary ></indexterm> <indexterm zone="new-projects-start-cvs-remote"> <primary >CVS</primary> <secondary >:pserver:</secondary ></indexterm> <indexterm zone="new-projects-start-cvs-remote"> <primary >CVS</primary> <secondary >:ext:</secondary ></indexterm> <formalpara id="new-projects-start-cvs-remote"> <title >Виды удалённых серверов &CVS;</title> <para >Есть два типа удалённых серверов &CVS;: это <emphasis >pserver</emphasis >, использующий авторизацию без шифрования, и <emphasis >ext</emphasis >, в котором доступно шифрование <acronym >rsh</acronym > или <acronym >ssh</acronym >. Они различаются по приставке в <acronym >URL</acronym >: </para> </formalpara> <para> <filename >:pserver:</filename> </para> <para >для <quote >password protected server</quote > (сервера, защищённого паролем) без шифрования и </para> <para> <filename >:ext:</filename> </para> <para >для сервера, поддерживающего шифрование <acronym >rsh</acronym > или <acronym >ssh</acronym >. Например: </para> <para> <userinput ><filename class="directory" >:ext:<replaceable >mylogin</replaceable >@cvs.cervisia.sourceforge.net:/cvsroot/cervisia</filename ></userinput> </para> <para >позволит получить доступ к исходному коду <application >Cervisia</application >, программы работы с &CVS;, на сервере SourceForge. </para> <para >Если вы хотите получить доступ к серверу &CVS; с шифрованием <acronym >rsh</acronym > или <acronym >ssh</acronym >, укажите протокол шифрования. Для этого необходимо установить значение переменной среды окружения <envar >CVS_RSH</envar > как <userinput >rsh</userinput > или <userinput >ssh</userinput >. </para> <note ><para >Если вы собираетесь использовать шифрование для &CVS;, прочитайте главу <link linkend="cvs" >Использование &CVS;</link >. </para ></note> <indexterm zone="new-projects-start-cvs-repository"> <primary >CVS</primary> <secondary >репозиторий</secondary ></indexterm> <indexterm zone="new-projects-start-cvs-repository"> <primary >репозиторий</primary> <secondary >CVS</secondary ></indexterm> <formalpara id="new-projects-start-cvs-repository"> <title >Репозиторий &CVS;</title> <para >Теперь нужно указать где следует сохранять файлы проекта в &CVS;. Это место называется <emphasis >репозиторием</emphasis >. </para> </formalpara> <para >В принципе, вы можете выбрать любое имя для репозитория &CVS;, учитывая лишь ограничения на имена файлов, но большинство разработчиков просто указывают название программы. Репозиторий с указанным вами именем будет создан в корне &CVS;. </para> <para >Укажите имя репозитория, которое вы хотите использовать, вместе с корнем CVS в поле <guilabel >Репозиторий</guilabel > диалога <guilabel >Новый проект</guilabel > в разделе <guilabel >Система управления версиями</guilabel >. </para> <warning ><para ><emphasis >Обратите внимание, на то, что нельзя использовать уже существующий репозиторий!</emphasis > Система &CVS; не предупреждает о дублирующихся файлах, поэтому вы можете их потерять. </para ></warning> <formalpara> <title >Оставшиеся поля</title> <para >Осталось совсем немного. Остальные поля заполнены за вас автоматически: </para> </formalpara> <para >Поле <guilabel >Метка производителя</guilabel > используется только для совместимости. Вы можете оставить значение по умолчанию. </para> <para >Поле <guilabel >Комментарий</guilabel > содержит комментарий, который будет добавлен к первой версии файлов в хранилище &CVS;. </para> <para >Поле <guilabel >Метка выпуска</guilabel > содержит метку &CVS; первоначального состояния проекта. С помощью <emphasis >метки</emphasis > вы всегда сможете вернуться к состоянию разработки на данный момент. Подробная информация находится в главе <link linkend="cvs" >Использование &CVS;</link >. </para> <para >По умолчанию предлагается метка <quote >start</quote >. </para> <note> <para >Если какая-либо информация введена неправильно, это не выяснится на этапе создания проекта. Поэтому следите за <guilabel >сообщениями</guilabel >во время работы с репозиторием из основного окна программы. Если произошли ошибки &CVS;, вы увидите что-то на подобие этого: </para> <screen ><computeroutput> * cd '/home/devel/test' && cvs -d '/home/devel/mycvsroot' \ import -m 'new project' '' 'vendor' 'start' &&\ sh /opt/kde3/share/apps/kdevcvs/buildcvs.sh . '' \ '/home/devel/mycvsroot' * cvs [import aborted]: /home/devel/mycvsroot/CVSROOT: No such file or directory * *** Exited with status: 1 *** </computeroutput ></screen> <para >Если это произошло, инициализируйте &CVS; самостоятельно или удалите каталог проекта и начните процесс создания проекта сначала. </para> </note> <para >После ввода всех данных &CVS; нажмите <guibutton >Далее ></guibutton >. </para> <note ><para >Чтобы исправить ошибку на предыдущем шаге, нажмите кнопку <guibutton >< Назад</guibutton >. </para ></note> </sect2 > <!-- new-projects-start-cvs --> <sect2 id="new-projects-start-templates"> <title >Шаблоны программных файлов</title> <para >На следующих шагах мастера вы сможете установить общую информацию о вашем проекте, которая будет включаться во все его файлы. </para> <para >Вам будут предложены отдельные шаблоны заголовочных файлов и файлов реализации для проектов на C и C++. Для некоторых других языков есть только шаблоны файлов исходного кода. Для остальных языков программирования всё ещё нет готовых шаблонов. </para> <para >Если для проекта есть возможность использования шаблонов, в начале файлов проекта с исходным кодом будет добавлен комментарий о лицензии, например для программ на C++ он будет выглядеть так: </para> <screen ><computeroutput ><literal> /*************************************************************************** * Copyright (C) 2003 by Your Name * * you@you.com * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ </literal ></computeroutput ></screen> <para >Другие шаблоны будут иметь подобную информацию в соответствующим языку формате. </para> <para >Шаблоны файлов исходного кода будут также содержать информацию на основе данных, указанных ранее в мастере <guilabel >создания проектов</guilabel >, а именно содержимом полей <guilabel >Автор</guilabel >, <guilabel >Электронная почта</guilabel > и <guilabel >Лицензия</guilabel >. </para> <sect3 id="new-projects-start-templates-edit"> <title >Изменение шаблонов</title> <indexterm zone="new-projects-start-templates-edit"> <primary >шаблоны</primary> <secondary >проект</secondary> <tertiary >изменение</tertiary ></indexterm> <indexterm zone="new-projects-start-templates-edit"> <primary >проект</primary> <secondary >шаблоны</secondary> <tertiary >изменение</tertiary ></indexterm> <para >Шаблоны, которые вы редактируете в диалоге <guilabel >Новый проект</guilabel > будут использованы при создании нового заголовочного файла или файла реализации в проекте. В начале каждого файла будет расположена некоторая информация, зависящая от шаблона. </para> <para >Вы не ограничены вставкой обычного текста, &kdevelop; распознаёт несколько переменных, которые будут заменены на содержимое заданных полей. Это может быть информация об <guilabel >авторе</guilabel >, <guilabel >электронной почте</guilabel > или <guilabel >лицензии</guilabel >. </para> <variablelist> <varlistentry> <term >Включение информации для &doxygen;</term> <listitem> <para >Если, к примеру, вы хотите чтобы документация по &API;, генерируемая программой &doxygen;, содержала также дополнительное краткое описание файла, включите в шаблон такой код: </para> <screen ><computeroutput> /** * \file $MODULE$.cpp * \brief (здесь нужно поставить краткое описание файла). **/ </computeroutput ></screen> <para >Каждый раз, когда вы будете создавать новый файл исходного кода, &kdevelop; заменит <varname >$MODULE$</varname > именем создаваемого файла. Например, если вы создали новый класс C++ с именем <classname >ASimpleTest</classname >, в начале файла <filename >asimpletest.cpp</filename > будет такой текст: </para> <screen ><computeroutput> /** * \file asimpletest.cpp * \brief (здесь нужно поставить краткое описание файла). **/ </computeroutput ></screen> <para >И теперь останется ввести краткое описание файла после слова <quote >\brief</quote >, не оставляя служебного, каждый раз одинакового, кода. </para> </listitem> </varlistentry> <varlistentry> <term >Файл с лицензией</term> <listitem> <para >Также вы можете включить информацию о лицензии. Для этого используется переменная <varname >$LICENSEFILE$</varname >: </para> <screen ><computeroutput> // Файл $LICENSEFILE$ содержит полный текст лицензии. </computeroutput ></screen> <para >Мастер приложений заменит <varname >$LICENSEFILE$</varname > на имя файла, содержащего лицензию, например: </para> <screen ><computeroutput> // Файл COPYING содержит полный текст лицензии. </computeroutput ></screen> <para >для лицензии <acronym >GPL</acronym >, или </para> <screen ><computeroutput> // Файл LICENSE.BSD содержит полный текст лицензии. </computeroutput ></screen> <para >если вы решили распространять свою программу под лицензией <acronym >BSD</acronym >. </para> <para >&kdevelop; поддерживает большое количество переменных. Подробно это изложено в разделе <link linkend="newfiles-edittemplates" >Изменение шаблонов</link > главы <link linkend="editing" >Средства редактирования</link >. </para> </listitem> </varlistentry> </variablelist> <note ><para >Шаблоны, которые вы установили здесь, будут задействованы после создания проекта. Информация, выбранная вами, будет находится в начале каждого созданного в рамках проекта файла исходного кода. Вы можете изменить текст шаблонов вручную после создания проекта. </para ></note> </sect3 > <!-- new-projects-start-templates-edit --> </sect2 > <!-- new-projects-start-templates --> <sect2 id="new-projects-start-build"> <title >Построение начальных файлов проекта</title> <indexterm zone="new-projects-start-build"> <primary >проект</primary> <secondary >новый</secondary> <tertiary >построение</tertiary ></indexterm> <indexterm zone="new-projects-start-build"> <primary >проект</primary> <secondary >начальное построение</secondary ></indexterm> <para >Теперь почти всё сделано. На последнем шаге кнопка <guibutton >Далее ></guibutton > сменяется на <guibutton >Готово</guibutton >. </para> <para ><emphasis >Подумайте дважды перед её нажатием!</emphasis > Вы пока ещё имеете возможность вернуться <guibutton >< Назад</guibutton > и изменить введённые данные. Если вы используете &CVS; локально, проверьте ещё раз имя <emphasis >репозитория</emphasis > (указанного подкаталога не должно существовать). </para> <para >Чтобы отменить создание проекта, нажмите соответствующую кнопку, иначе нажмите <guibutton >Готово</guibutton >, при этом в окне <guilabel >Сообщения</guilabel > будут выводится подробные действия, выполняемые мастером создания проекта. </para> <para >Если вы выбрали использование &CVS;, после создания дерева каталогов проекта, будет запущена программа &CVS;, очищающая предыдущее содержимое окна <guilabel >сообщений</guilabel > и выводящая собственные сообщения. </para> <note ><para >В большинстве случаев после завершения создания &kdevelop; автоматически откроет важные файлы проекта (это зависит от выбранного шаблона проекта). </para ></note> <para >Не забудьте проверить предлагаемые по умолчанию значения. Например, вы можете изменить комментарии, добавляемые в начало файлов исходного кода. Шаблоны файлов находятся в подкаталоге <filename class="directory" >templates</filename > базового каталога вашего проекта. </para> <para >Мы рекомендуем вас перед тем, как набивать собственный код, <emphasis >собрать новый проект</emphasis >. В большинстве случаев при этом не должно возникнуть никаких проблем. Чтобы начать всё сначала, удалите каталог проекта и его хранилище в корне &CVS; (если таковой имеется) и начните создание нового проекта заново. </para> <warning id="defaultbuild-warning" > <!-- ### remove this when "default" works again --> <indexterm zone="defaultbuild-warning"> <primary >сборочная конфигурация по умолчанию</primary> <secondary >предупреждение</secondary ></indexterm> <indexterm zone="defaultbuild-warning"> <primary >конфигурации сборки</primary> <secondary >предупреждение сборки по умолчанию</secondary ></indexterm> <indexterm zone="defaultbuild-warning"> <primary >предупреждение</primary> <secondary >конфигурация сборки по умолчанию</secondary ></indexterm> <para >Перед сборкой вашего проекта в первый раз, откройте <menuchoice ><guimenu >Проект</guimenu > <guimenuitem >Конфигурация сборки</guimenuitem ></menuchoice >. Там будет три профиля сборки: <guimenuitem >default</guimenuitem >, <guimenuitem >optimized</guimenuitem > и <guimenuitem >debug</guimenuitem >. </para> <para >Из-за некоторых ограничений в autoconf/automake, не используйте конфигурацию <guimenuitem >default</guimenuitem >. это приведёт к повреждению внутренней структуры каталогов, и вы не сможете использовать конфигурации <guimenuitem >optimized</guimenuitem > и <guimenuitem >debug</guimenuitem >. </para> <para >Если тип приложения, которое вы выбрали, предлагает только <guimenuitem >default</guimenuitem >, естественно, используйте его. </para> </warning> </sect2 > <!-- new-projects-start-build --> </sect1 > <!-- new-projects --> <sect1 id="projects-configure"> <title >Настройка проектов</title> <para >(.. в процессе написания ..)</para> </sect1> </chapter > <!-- applicationwizard -->