blob: ca35c75fdc4424a22313ecddb7f849f663849f80 [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
= Хранение проектов NetBeans C/C++ в системах контроля версий
:jbake-type: tutorial
:jbake-tags: tutorials
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Хранение проектов NetBeans C/C++ в системах контроля версий - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Хранение проектов NetBeans C/C++ в системах контроля версий
Составитель: Владимир Квашнин, редактор: Алена Сташкова
Март 2014 г. [Номер редакции: V8.0-1]
Начиная с версии NetBeans IDE 7.3 хранение проектов NetBeans C/C++ (как правило, это проекты на основе существующего кода или двоичного кода) в системах контроля версий (VCS) значительно упростилось. Данная статья содержит подробную информацию о хранении проектов NetBeans C/C++ в системах контроля версий в IDE NetBeans.
image::images/netbeans-stamp-80-74-73.png[title="Содержимое этой страницы применимо к IDE NetBeans 7.3 и более поздним версиям"]
== Требования
*Для работы с этим учебным курсом требуется программное обеспечение, указанное ниже.*
|===
|Программное обеспечение |Требуемая версия
|IDE NetBeans (включая поддержку C/C++) |link:https://netbeans.org/downloads/index.html[+версия 7.3 и более поздние с подключаемым модулем NetBeans C/C+++]
|Комплект для разработчика на языке Java (JDK) |link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Версия 6, 7 или 8 +]
|===
Дополнительные сведения о загрузке и установке необходимого программного обеспечения см. в разделах link:../../../community/releases/74/install.html[+Инструкции по установке IDE NetBeans+] и link:../../../community/releases/74/cpp-setup-instructions.html[+Настройка IDE NetBeans для C/C++/Fortran+].
== В IDE NetBeans устранены проблемы, связанные с контролируемыми проектами
В IDE NetBeans были устранены следующие проблемы.
* <<unfriendly,Хранение данных проектов, не совместимых с VCS>>
* <<compiler,Параметры компилятора>>
=== [[Хранение данных проектов, не совместимых с VCS]]
В IDE NetBeans файлы метаданных проектов менялись слишком часто. Например, вы могли просто открыть проект под управлением VCS, ничего не менять в нем и вдруг заметить, что некоторые файлы метаданных проекта были изменены, поэтому вы должны проверить их или выполнить откат.
Этот вопрос был в основном связан с проектами на основе существующего кода и проектами на основе двоичного кода. Другими словами, с проектами на основе файлов, созданных пользователями.
Причина ошибки заключалась в том, что для таких проектов в IDE было очень мало информации о том, какие файлы и с какими параметрами компиляции использовались при сборке. Без такой информации функция помощи при работе с кодом не может давать точных результатов. Поэтому IDE должен был использовать уже имеющиеся данные для анализа содержимого проекта и настройки функции помощи при работе с кодом для анализа соответствующих файлов с соответствующими параметрами. К сожалению, такая статистика хранится без учета требований VCS.
=== Параметры компилятора
Ошибка компилятора связана с тем, что параметры компилятора, используемые для сборки проекта, могут быть очень тесно связаны с компьютером, на котором выполняется сборка проекта. Например, при сборке OpenJDK используется `ALT_BOOTDIR`, который должен быть установлен на пути к используемому JDK. Этот путь может быть разным даже на компьютерах с идентичной операционной системой. IDE сохраняет все параметры компилятора в метаданных проекта - без этих данных он не сможет выполнить анализ кода в следующий раз, и результаты не будут достаточно точными.
Когда информация, связанная с определенными компьютерами или пользователями, передается в VCS, метаданные проекта изменяются после их изъятия другим пользователем для сборки проекта (сохраняются новые параметры), хотя пользователь не вносил никаких изменений в проект.
== Список переменных среды
Для проектов на основе существующего кода или бинарного кода можно указать список переменных среды, которые будут использоваться при хранении метаданных проекта. Если IDE сохраняет параметры компилятора и значение параметра совпадает со значением переменных, вместо этого будет записан макрос.
Рассмотрим следующий пример. Имеются переменные `ALT_BOOTDIR=/usr/jdk/latest` и `ALT_BOOTDIR`, перечисленные в указанном выше поле в моей среде. Если IDE распознает, что параметр `-I/usr/jdk/latest/include` был использован при компиляции файла, он сохранит `${ALT_BOOTDIR}/include` в метаданных проекта.
Мастер настройки помощника при работе с кодом также можно использовать для каждой конфигурации отдельно: он изменяет только ту конфигурацию, которая активна в настоящий момент. Таким образом, вы можете запустить его отдельно для каждой конфигурации и получить разные параметры помощника при работе с кодом для каждой платформы.
== Настройка помощника при работе с кодом в случаях, когда не удается создать проект
Мастер настройки помощника при работе с кодом наиболее эффективен при написании кода с использованием данных отладки. Лучшие варианты: `-g3 -gdwarf-2` для компиляторов GNU и просто `-g` для компиляторов SUN.
Но если сборка проекта не выполнена или не содержит никакой информации об отладке, мастер настройки помощника при работе с кодом поддерживает специальный режим 'Поиск в файловых системах файлов заголовков C/C++'. В этом режиме IDE NetBeans попытки разрешения конфликтов включали директивы путем поиска файловых систем для заголовков. Для этого мастер запросит ввести путь для поиска заголовков. По умолчанию это корневые папки исходных файлов проекта.
== Переходные макросы
Другой аспект, который может неожиданно изменить метаданные проекта, - макросы (параметры `-D`), которые могут изменяться. Например, макросы, которые зависят от даты или имени текущего пользователя. Хранение таких значений макросов изменяет файлы метаданных проекта, и это не является целесообразным
Вы можете указать список таких макросов, которые требуется игнорировать, в поле "Переходные макросы". Это предотвращает для IDE хранение значений этих макросов в метаданных проектов. Макросы должны быть указаны в формате 'макрос=значение'. Ниже приведен снимок экрана для свойств проекта.
[.feature]
--
image::images/proj_props_small.png[role="left", link="images/proj_props.png"]
--
== Управляемые проекты
В управляемых проектах (проекты "Приложение C/C++", "Динамическая библиотека C/C++" или "Статическая библиотека C/C++") также можно использовать переменные среды для указания параметров компиляторов. Перед параметром должен стоять знак доллара, а сам параметр должен быть заключен в фигурные скобки:`${ALTBOOTDIR}/include`.
== Дополнительные сведения о поддержке языков C/C++/Фортран
* Подробнее об использовании функций C/C++ среды IDE NetBeans см. в разделе link:https://netbeans.org/kb/trails/cnd.html[+Учебная карта C/C+++].
* Присоединитесь к link:http://forums.netbeans.org/cnd-users.html[+форуму пользователей NetBeans C/C+++], чтобы принять участние в обсуждениях, связанных с разработкой на C/C++ с использованием IDE NetBeans, или обратиться за поддержкой.
* Вы можете сообщить об ошибке или предложить усовершенствование в link:https://netbeans.org/bugzilla/enter_bug.cgi?component=cnd[+Bugzilla+] (на сайте netbeans.org требуется регистрация).
* Сведения об использовании популярных пакетов контроля версий с IDE NetBeans см. в разделах "link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG234[+Управление версиями приложений в системах контроля версий+]" в документе _Разработка приложений в IDE NetBeans_.
link:mailto:users@cnd.netbeans.org?subject=subject=Feedback:%20Storing%20NetBeans%20C/++%20Projects%20Under%20Version%20Control%20System[+Отправить отзыв по этому учебному курсу+]