blob: 00328c5e941eb4adb02f2271a1a36a8490431d73 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Хранение проектов NetBeans C/C++ в системах контроля версий</title>
<link rel="stylesheet" href="../../../netbeans.css" type="text/css">
<link rel="stylesheet" type="text/css" href="../../../print.css" media="print">
<link rel="stylesheet" type="text/css" href="../../../lytebox.css" media="screen">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<meta name="description"
content="An article about storing NetBeans IDE's or Oracle Solaris Studio IDE's C/C++ projects under version control systems">
<meta name="author" content="Vladimir Kvashin ">
<meta name="keywords" content="NetBeans, IDE, integrated development environment, tutorial, guide, user, documentation, open source, C, C++, version control systems, vcs, Oracle, Solaris, Studio, development platform">
</head>
<body>
<a name="top"></a>
<h1>Хранение проектов NetBeans C/C++ в системах контроля версий</h1>
<!-- START INTRO ---------------------------------------------------------------------------------------* -->
<div class="articledate" style="margin-left: 0px;font-style:italic;">
<p>Составитель: Владимир Квашнин, редактор: Алена Сташкова<br> Март 2014 г. [Номер редакции: V8.0-1]</p>
</div>
<p>Начиная с версии NetBeans IDE 7.3 хранение проектов NetBeans C/C++ (как правило, это проекты на основе существующего кода или двоичного кода) в системах контроля версий (VCS) значительно упростилось. Данная статья содержит подробную информацию о хранении проектов NetBeans C/C++ в системах контроля версий в IDE NetBeans.</p>
<h3>Содержание</h3>
<img alt="Содержимое этой страницы применимо к IDE NetBeans 7.3 и более поздним версиям" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="Содержимое этой страницы применимо к IDE NetBeans 7.3 и более поздним версиям">
<ul class="toc">
<li><a href="#requirements" title="Требования">Требования</a></li>
<li><a href="#issue" title="Ошибки в проектах под управлением VCS, устраненные в 7.3">В IDE NetBeans устранены проблемы, связанные с контролируемыми проектами</a>
<ul>
<li><a href="#unfriendly">Хранение данных проектов, не совместимых с VCS</a></li>
<li><a href="#compiler">Параметры компилятора</a></li>
</ul></li>
<li><a href="#variables" title="Список переменных среды">Список переменных среды</a></li>
<li><a href="#cannotbuild" title="Настройка помощника при работе с кодом в случаях, когда не удается создать проект">Настройка помощника при работе с кодом в случаях, когда не удается создать проект</a></li>
<li><a href="#macros" title="Переходные макросы">Переходные макросы</a></li>
<li><a href="#prj" title="Управляемые проекты">Управляемые проекты</a></li>
<li><a href="#info" title="Дополнительные сведения о поддержке языков C/C++/Фортран">Дополнительные сведения о поддержке языков C/C++/Фортран</a></li>
</ul>
<h2><a NAME="requirements"></a>Требования</h2>
<p><b>Для работы с этим учебным курсом требуется программное обеспечение, указанное ниже.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Программное обеспечение</th>
<th class="tblheader" scope="col">Требуемая версия</th>
</tr>
<tr>
<td class="tbltd1">IDE NetBeans (включая поддержку C/C++)</td>
<td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">версия 7.3 и более поздние с подключаемым модулем NetBeans C/C++</a></td>
</tr>
<tr>
<td class="tbltd1">Комплект для разработчика на языке Java (JDK)</td>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Версия 6, 7 или 8 </a></td>
</tr>
</tbody>
</table>
<br>
<p>Дополнительные сведения о загрузке и установке необходимого программного обеспечения см. в разделах <a href="../../../community/releases/74/install.html">Инструкции по установке IDE NetBeans</a> и <a href="../../../community/releases/74/cpp-setup-instructions.html">Настройка IDE NetBeans для C/C++/Fortran</a>.</p>
<h2><a name="issue"></a>В IDE NetBeans устранены проблемы, связанные с контролируемыми проектами </h2>
<p>В IDE NetBeans были устранены следующие проблемы.</p>
<ul><li><a href="#unfriendly">Хранение данных проектов, не совместимых с VCS</a></li>
<li><a href="#compiler">Параметры компилятора</a></li></ul>
<h3><a name="unfriendly">Хранение данных проектов, не совместимых с VCS</a></h3>
<p>В IDE NetBeans файлы метаданных проектов менялись слишком часто. Например, вы могли просто открыть проект под управлением VCS, ничего не менять в нем и вдруг заметить, что некоторые файлы метаданных проекта были изменены, поэтому вы должны проверить их или выполнить откат.</p>
<p>Этот вопрос был в основном связан с проектами на основе существующего кода и проектами на основе двоичного кода. Другими словами, с проектами на основе файлов, созданных пользователями. </p>
<p>Причина ошибки заключалась в том, что для таких проектов в IDE было очень мало информации о том, какие файлы и с какими параметрами компиляции использовались при сборке. Без такой информации функция помощи при работе с кодом не может давать точных результатов. Поэтому IDE должен был использовать уже имеющиеся данные для анализа содержимого проекта и настройки функции помощи при работе с кодом для анализа соответствующих файлов с соответствующими параметрами. К сожалению, такая статистика хранится без учета требований VCS.</p>
<h3><a name="compiler"></a>Параметры компилятора</h3>
<p>Ошибка компилятора связана с тем, что параметры компилятора, используемые для сборки проекта, могут быть очень тесно связаны с компьютером, на котором выполняется сборка проекта. Например, при сборке OpenJDK используется <code>ALT_BOOTDIR</code>, который должен быть установлен на пути к используемому JDK. Этот путь может быть разным даже на компьютерах с идентичной операционной системой. IDE сохраняет все параметры компилятора в метаданных проекта - без этих данных он не сможет выполнить анализ кода в следующий раз, и результаты не будут достаточно точными.</p>
<p>Когда информация, связанная с определенными компьютерами или пользователями, передается в VCS, метаданные проекта изменяются после их изъятия другим пользователем для сборки проекта (сохраняются новые параметры), хотя пользователь не вносил никаких изменений в проект.
</p>
<h2><a name="variables"></a>Список переменных среды</h2>
<p>Для проектов на основе существующего кода или бинарного кода можно указать список переменных среды, которые будут использоваться при хранении метаданных проекта. Если IDE сохраняет параметры компилятора и значение параметра совпадает со значением переменных, вместо этого будет записан макрос.</p>
<p> Рассмотрим следующий пример. Имеются переменные <code>ALT_BOOTDIR=/usr/jdk/latest</code> и <code>ALT_BOOTDIR</code>, перечисленные в указанном выше поле в моей среде. Если IDE распознает, что параметр <code>-I/usr/jdk/latest/include</code> был использован при компиляции файла, он сохранит <code>${ALT_BOOTDIR}/include</code> в метаданных проекта.</p>
<p>Мастер настройки помощника при работе с кодом также можно использовать для каждой конфигурации отдельно: он изменяет только ту конфигурацию, которая активна в настоящий момент. Таким образом, вы можете запустить его отдельно для каждой конфигурации и получить разные параметры помощника при работе с кодом для каждой платформы.
</p>
<h2><a name="cannotbuild"></a>Настройка помощника при работе с кодом в случаях, когда не удается создать проект</h2>
<p>Мастер настройки помощника при работе с кодом наиболее эффективен при написании кода с использованием данных отладки. Лучшие варианты: <code>-g3 -gdwarf-2</code> для компиляторов GNU и просто <code>-g</code> для компиляторов SUN.
</p>
<p>Но если сборка проекта не выполнена или не содержит никакой информации об отладке, мастер настройки помощника при работе с кодом поддерживает специальный режим 'Поиск в файловых системах файлов заголовков C/C++'. В этом режиме IDE NetBeans попытки разрешения конфликтов включали директивы путем поиска файловых систем для заголовков. Для этого мастер запросит ввести путь для поиска заголовков. По умолчанию это корневые папки исходных файлов проекта.</p>
<h2><a name="macros"></a>Переходные макросы</h2>
<p>
Другой аспект, который может неожиданно изменить метаданные проекта, - макросы (параметры <code>-D</code>), которые могут изменяться. Например, макросы, которые зависят от даты или имени текущего пользователя. Хранение таких значений макросов изменяет файлы метаданных проекта, и это не является целесообразным</p>
<p>Вы можете указать список таких макросов, которые требуется игнорировать, в поле "Переходные макросы". Это предотвращает для IDE хранение значений этих макросов в метаданных проектов. Макросы должны быть указаны в формате 'макрос=значение'. Ниже приведен снимок экрана для свойств проекта.</p>
<p class="align-center">
<a href="../../../images_www/articles/73/cnd/cpp-vcs/proj_props.png" rel="lytebox" title="Свойства проекта"> <img alt="Свойства проекта" src="../../../images_www/articles/73/cnd/cpp-vcs/proj_props_small.png"></a></p>
<h2><a name="prj"></a>Управляемые проекты</h2>
<p>
В управляемых проектах (проекты "Приложение C/C++", "Динамическая библиотека C/C++" или "Статическая библиотека C/C++") также можно использовать переменные среды для указания параметров компиляторов. Перед параметром должен стоять знак доллара, а сам параметр должен быть заключен в фигурные скобки:<code>${ALTBOOTDIR}/include</code>.</p>
<h2><a name="info"></a>Дополнительные сведения о поддержке языков C/C++/Фортран</h2>
<ul>
<li>Подробнее об использовании функций C/C++ среды IDE NetBeans см. в разделе <a href="https://netbeans.org/kb/trails/cnd.html">Учебная карта C/C++</a>.</li>
<li>Присоединитесь к <a href="http://forums.netbeans.org/cnd-users.html">форуму пользователей NetBeans C/C++</a>, чтобы принять участние в обсуждениях, связанных с разработкой на C/C++ с использованием IDE NetBeans, или обратиться за поддержкой. </li>
<li>Вы можете сообщить об ошибке или предложить усовершенствование в <a href="https://netbeans.org/bugzilla/enter_bug.cgi?component=cnd">Bugzilla</a> (на сайте netbeans.org требуется регистрация).</li>
<li>Сведения об использовании популярных пакетов контроля версий с IDE NetBeans см. в разделах "<a href="http://www.oracle.com/pls/topic/lookup?ctx=nb7400&amp;id=NBDAG234">Управление версиями приложений в системах контроля версий</a>" в документе <i>Разработка приложений в IDE NetBeans</i>.</li>
</ul>
<div class="feedback-box"><a href="mailto:users@cnd.netbeans.org?subject=subject=Feedback:%20Storing%20NetBeans%20C/++%20Projects%20Under%20Version%20Control%20System">Отправить отзыв по этому учебному курсу</a><br style="clear:both;">
</div>
</body>
</html>