Платформа Eclipse - это инструментальное средство с открытым исходным кодом, помогающее вам в реализации проекта на всех этапах, от проектирования до тестирования, в единой среде разработки, без необходимости использовать раздельные инструментальные средства для каждого этапа. Eclipse был создан в помощь сообществу разработчиков инструментальных средств, концентрируясь на основных функциональных возможностях инструмента, а не на самой среде разработки (IDE). Это достижимо благодаря модели программирования Eclipse, которая поддерживает строительные блоки ПО, называемые встраиваемыми расширениями (плагины).
В начале Eclipse развивался как интегрированная среда для программирования на Java, поскольку это было актуально в то время. В силу своей расширяемости, он стал использоваться для разработки приложений на других языках программирования, таких как COBOL и C/C++.
Данная статья рассматривает приложения на C и C++. Большинство проектов на C и C++ для развертывания в среде Windows разработаны при помощи Microsoft Visual Studio. В данной статье приводится пошаговая процедура переноса проектов из Microsoft Visual Studio C/C++ (MSVC) в Eclipse. Параллельно с этим мы сравним и сопоставим преимущества от использования MSVC и Eclipse CDT.
- Платформа Eclipse
- Загрузите Eclipse с сайта организации Eclipse.
- Пакет инструментальных средств разработки C++ (CDT) Eclipse
- Установите это расширение Eclipse для разработки программ на C и C++ (см. раздел О CDT).
- Visual Studio/Platform SDK
- Это должно быть вашей средой разработки для приложений C/C++ в Windows. Последняя версия платформы SDK (MSVC Express) претерпевает в настоящее время изменения, которые требуют, чтобы вы выполняли построение выполняемых модулей традиционным способом с использованием make-файла nmake. В данной статье предполагается, что вы создаете выполняемые модули посредством make-файла. Выясните, какую версию вы используете.
Ссылки для загрузки каждой из них приведены в разделе Ресурсы.
Сравнение Visual Studio и Eclipse
Microsoft Visual Studio имеет долгую историю и широко используется разработчиками приложений для Windows. Он также является лидером в разработке приложений на C и C++ для Microsoft Windows. В отличие от него, Eclipse CDT является относительно новым и весьма популярным в наши дни среди разработчиков. Eclipse CDT спроектирован, чтобы удовлетворить потребности разработчиков на разных платформах ОС, таких как Linux®, и зависит от компилятора gcc и других инструментов с открытым исходным кодом.
Eclipse и Visual Studio можно сравнивать по различным направлениям. Можно сравнить пользовательский интерфейс, архитектуру, стоимость, лёгкость обращения и многие другие критерии. Поскольку в данной статье рассматривается разработка на C и C++ , мы рассмотрим и сопоставим сильные стороны обоих средств, касающиеся разработки приложений на C и C++ для Windows.
Сравнение разработки приложений на C/C++ для Windows
| Microsoft Visual Studio C/C++ | Eclipse CDT | |
|---|---|---|
| Характер лицензии | Патентованное средство | С открытым исходным кодом |
| Поддерживаемые языки программирования | Предназначен для C/C++ и языков программирования, поддерживаемых Microsoft | Различные языки программирования (COBOL, язык программирования Java и другие), параллельно с С/С++ |
| Поддерживаемые фазы SDLC | Только программирование | Проектирование, программирование, управление конфигурацией, тестирование и проч. |
| Отладка | Полная поддержка отладки | Поддержка отладки отсутствует; поддержка отладки доступна лишь для программ на С, скомпилированных с помощью gcc, и на платформах, отличных от Windows. Требуется средство отладки Microsoft Debugging Tools for Windows |
| Редактор ресурсов | Исчерпывающий редактор ресурсов | Редактор ресурсов отсутствует |
| Тестирование | Инструментарий для тестирования как часть Visual Studio отсутствует; нужно использовать сторонний инструментарий | Можно использовать CppUnit (см. раздел Ресурсы для получения дополнительной информации) |
| Программирование MFC | Поддержка разработки приложения MFC (мастер, шаблоны программ и др.) | Поддержка отсутствует |
| Разработка встроенных инструментов (плагинов) | Visual Studio 6 не поддерживает встраиваемых программных компонентов | Основан на архитектуре встраиваемых расширений |
| Инструментарий, специфичный для Microsoft Windows | Spy++, error look-up (поиск ошибок), ActiveX Container и другие | Специальный инструментарий для платформ Windows отсутствует |
Пакет инструментальных средств разработки на C++ (CDT) Eclipse является расширением платформы Eclipse в форме плагина. Этот плагин доступен в варианте для любой платформы. Дружественность плагина для пользователя и то, что он имеет открытый исходный код, делает его популярным не только среди разработчиков для Linux, но и среди разработчиков на C++, использующих другие платформы. Плагины CDT и Web Tools являются двумя наиболее распространёнными расширениями для Eclipse. Примерно два из трёх разработчиков, использующих CDT, являются пользователями Windows.
CDT имеет субкомпоненты или плагины, являющиеся независимыми разработками сообщества CDT. Самым важным является основной плагин CDT, обеспечивающий базовые возможности CDT. CDT Debug UI (пользовательский интерфейс отладчика) обеспечивает возможности пользовательского интерфейса для программ редактирования и просмотра при отладке. Плагин CDT UI обеспечивает связанные с пользовательским интерфейсом (UI) функциональные возможности, программы просмотра, редактирования, мастеры и т.д. Отладчик CDT обеспечивает базовые возможности отладки. CDT Feature даёт компонент CDT Feature. Ядро CDT обеспечивает Core Model, CDOM, и другие базовые компоненты. CDT Launch реализует механизм для запуска внешних выполняемых модулей и инструментальных средств. CDT Debug MI (машинный интерфейс) - коннектор приложений для MI-совместимых отладчиков.
Редакторы CDT содержат несколько возможностей, которые делают их популярными. Например, подсветка синтаксиса и помощник по коду (code assist) делают разработку ПО быстрой и простой. Подсветка синтаксиса конфигурируется и может быть настроена индивидуально, в соответствии с личными предпочтениями разработчика. Помощник по коду - это функция дописывания строк кода аналогичная такой же функции в Visual Studio. В плагин можно добавлять задаваемые пользователем шаблоны кода, которые могут затем использоваться помощником по коду.
В последующих разделах мы узнаем, как эффективно использовать CDT для переноса проектов Visual Studio в инструментальное средство Eclipse CDT Workbench.
В данном разделе мы перенесём простое приложение HelloWorld Win32, разработанное с помощью Microsoft Visual C++ 6.
- Если вы не имеете существующего Win32-приложения, создайте приложение HelloWorld Win32, используя Visual Studio.
Создайте make-файл, выбрав в меню Visual Studio опции Projects > Export Makefile (Проекты > Экспортировать Мake-файл).
Рисунок 1. Создание приложения HelloWorld Win32 с помощью Visual Studio
- Запустите Eclipse и откройте перспективу C/C++.
- Выберите Window > Open Perspective > Other (Окно > Открыть Перспективу > Прочее)
Рисунок 2a. Открытие перспективы C/C++
- Выберите перспективу C/C++
Рисунок 2b. Выбор перспективы C/C++
Замечание: Перспектива C/C++ будет присутствовать в диалоге Select Perspective, только если плагин CDT установлен. - Выберите Window > Open Perspective > Other (Окно > Открыть Перспективу > Прочее)
- Создайте стандартный Make-проект C/C++ с помощью File > New > Standard Make C++ Project (Файл > Новый > Стандартный Make-проект C++). Назовите проект HelloEclipse, введя его имя в поле Project Name (Имя Проекта) открывшегося диалога New Project (Новый Проект) и нажмите кнопку Finish (Готово).
Рисунок 3a. Время для HelloWorld
Рисунок 3b. Назовите ваш проект HelloEclipse
- Теперь нужно импортировать файлы, созданные с помощью Visual Studio, в Eclipse. Перейдите к File > Import. Выберите Filesystem (Файловая система) в диалоговом окне Import (Импорт) и нажмите кнопку Next (Дальше). Если вновь созданный проект не виден, перейдите к Window > ShowView > C/C++ project (Окно - Показывать - Проект C/C++ ).
Рисунок 4. Импорт файлов проекта HelloWorld из Visual Studio
- Просмотрите папку, где был создан проект Visual Studio, выберите для импорта файлы с расширениями *.c*, *.h*,*.rc,*.ico
и .mak и нажмите кнопку Finish (Готово).
Рисунок 5. Импорт файлов *.c*, *.h*,*.rc,*.ico и .mak
- Добавление переменных окружения
Рисунок 6. Добавление переменных окружения
- Щелкните правой кнопкой мыши на проекте и выберите опцию Properties (Свойства). В диалоговом окне Properties for HelloEclipse (Свойства для HelloEclipse) выберите слева C/C++ Make Project и добавьте переменные окружения INCLUDE и LIB, указывающие на пути include и lib для Visual Studio. Если вы пользуетесь платформой SDK, укажите на её директории include и lib.
Рисунок 7. Задание правильного пути для include и lib в Visual Studio
- Откройте файл .mak, импортированный из проекта Visual Studio и внесите следующие изменения:
- Измените конфигурацию (CFG) с Debug (Отладка) на Release (Выпуск), чтобы получить работающую версию приложения. Это будет выглядеть как
CFG=HelloWin - Win32 Release.
Рисунок 8a. Изменение конфигурации с Debug на Release
- Добавьте команду для выполнения приложения в тэг ALL:
@cmd /c $(OUTDIR)\$(EXENAME).exe - Задайте
EXENAME=HelloWin
Рисунок 8b. Описание EXENAME
- Измените конфигурацию (CFG) с Debug (Отладка) на Release (Выпуск), чтобы получить работающую версию приложения. Это будет выглядеть как
- Следующим шагом будет создание нового целевого файла для make.
- Щелкните правой кнопкой мыши по текущему проекту и выберите Create Make Target (Создать Целевой Файл для Make) .
Рисунок 9a. Создание нового целевого файла
- Создайте целевой файл для нашего проекта. "Target name" задайте по своему желанию. "Make target" задаёт .mak-файл, который мы изменяли на предыдущем шаге. "Build command" задаётся при снятии флажка Use default (Использовать умолчания) в команде построения, и команда эта будет
nmake. Чтобы сделать режим просмотра Make targets видимым, зайдите в Window > Show View > Make Targets (Окно - Показывать - Целевые файлы Make).
Рисунок 9b. Целевой файл должен быть HelloWin.mak
- Щелкните правой кнопкой мыши по текущему проекту и выберите Create Make Target (Создать Целевой Файл для Make) .
- Чтобы построить и запустить приложение Win32, дважды щёлкните кнопкой мыши по созданному нами файлу HelloEclipse.
Рисунок 10. Запуск приложения
VC++ 2005 Express, вносящий множество изменений в традиционный Visual Studio C/C++, содержит проект, инициированный на Eclipse, для решения этой проблемы. Посетите Eclipse MSVC для получения более подробной информации (см. раздел Ресурсы).
Сложности, связанные с использованием Eclipse CDT в качестве IDE для разработки под Windows
Рассмотрим различные сложности, связанные с использованием Eclipse CDT на различных этапах процесса разработки ПО.
UML стал стандартом де-факто для представления и проектирования программных приложений с использованием объектно-ориентированных языков программирования. IBM предлагает два средства разработки Java на основе Eclipse: Rational® Application Developer и Rational Rose® XDE Developer для технологии Java. Оба они предлагают разработку на основе модели и поддерживают UML, полный цикл проектирования Java-кода, синхронизацию модель-код, выполняемую автоматически или по требованию, и другие полезные возможности. Хотя у нас имеется UML-плагин для Eclipse, тесная интеграция между UML и C/C++ в платформе Eclipse в настоящее время отсутствует.
Наиболее интересным элементом Visual Studio является его редактор ресурсов. Будь то редактор ресурсов SDK или MFC, они оба широко используются в разработке статических элементов управления для пользовательского интерфейса (UI) приложения. Сегодня Eclipse CDT не обеспечивает поддержки для разработки UI. Используйте проект визуального редактора для Eclipse при создании файлов .rc для разработки под Windows.
Microsoft изменяет свои компиляторы от версии к версии, что создает определённые сложности для Eclipse CDT в плане поддержки различных версий инструментальных средств SDK, выпускаемых Microsoft.
Сегодня полный переход в программах MSVC к открытому исходному коду является неприемлемым. В Linux такая задача очень сложна. Инструментарий SDK компании Microsoft не может работать в системах с открытым исходным кодом, таких как Linux. Инструментальные средства SDK должны запускаться внутри эмулятора Windows для того, чтобы их можно было использовать в Linux.
Тем не менее, в настоящее время разработчики для Windows, использующие платформы SDK, Eclipse CDT и Отладочные средства для Windows, рассматривают платформу Eclipse как альтернативу для MS Visual Studio.
Eclipse CDT основывается на отладчике GNU Debugger (GDB). GDB это отладчик на уровне исходного кода для программ на C, C++, Ada и других языках программирования. Ни Eclipse, ни GDB не понимают отладочной информации, генерируемой компиляторами Microsoft. В результате выбор CDT в качестве среды для полного цикла разработки под Windows сопряжен с трудностями. Тем не менее, вы можете использовать средства отладки Debugging Tools for Windows для отладки параллельно с Eclipse в роли среды разработчика.
CppUnit это среда тестирования для C/C++, аналогичная JUnit для Java. Существует также плагин CppUnit для Eclipse, который может использоваться параллельно с CDT для тестирования программ CPP. Ссылка на учебник по CppUnit содержится в разделе Ресурсы.
Инструментальные средства и другие критерии
Помимо стандартной разработки в Windows с помощью SDK, Visual Studio поддерживает многие другие виды разработки, включая DDK, .NET, WMI, разработку Web, разработку компонентов IE, MDAC и другие. Ожидается, что дополнительный вклад в этой области , внесёт сообщество разработчиков плагинов для Eclipse.
Все инструментальные средства с открытым исходным кодом, такие как listdlls, process explorer и task handler, можно считать обеспечивающими поддержку внутри Eclipse CDT, что, в определённой степени, позволяет преодолеть этот разрыв.
Возрастающая популярность, универсальность и принадлежность Eclipse к программным средствам с открытым исходным кодом побуждает многих делать выбор в пользу Eclipse как платформы разработки будущего. Тем не менее, переход на использование в приложениях Windows инструментов разработки с открытым исходным кодом, таких как GCC, GDB, или GCC/GDB для Windows, обеспечивающих функциональность, аналогичную Windows SDK, является на сегодняшний день нетривиальной задачей.
Впрочем, Eclipse это оптимальная альтернатива для Visual Studio, использующая открытый исходный код, когда мы говорим об этапах SDLC в целом. Учитывая всё большее количество поддерживаемых в Eclipse плагинов для разработки приложений C/C++ под Windows, Eclipse CDT может стать стандартом интегрированной среды (IDE) для разработок на C/C++ для Windows.
Научиться
- Оригинал статьи: Migrate Visual Studio C and C++ projects to Eclipse CDT.
- Прочтите Проект Eclipse CDT. Руководство по разработке плагинов. (Eclipse Project CDT (C/C++) Plugin Tutorial) Брайана Ли (Brian Lee), если вы не знакомы с CDT.
- Обратитесь к CppUnit wiki, чтобы узнать о среде тестирования программных модулей C++ для Eclipse.
- Обратитесь к CDT wiki на Eclipse.org, являющейся хорошей отправной точкой, содержащей информацию по всем вопросам, связанным с CDT.
-
Инструментарий Eclipse для разработчика C/C++ (Eclipse C/C++ Development Tooling) содержит ссылки на документацию по CDT и загружаемые ресурсы.
- Посетите CDT/designs/msvc на Eclipse.org, чтобы узнать больше о CDT и Microsoft Visual Studio.
- Для знакомства с платформой Eclipse изучите превосходную публикацию Начиная работу с платформой Eclipse.
- Посетите раздел IBM developerWorks Ресурсы проекта Eclipse, чтобы узнать больше об Eclipse.
- Посетите раздел developerWorks, чтобы быть в курсе последних событий в технике и web-трансляций.
- Ознакомьтесь с перечнем планируемых конференций, демонстраций, web-трансляций и других событий во всем мире, которые могут быть интересны разработчикам ПО с открытым исходным кодом IBM.
- Посетите Раздел Open source на developerWorks для получения разнообразной информации о средствах и методах разработки ПО, инструментальных средств и обновлений проектов, что поможет вам в разработке технологий с открытым исходным кодом и использовании их с программными продуктами IBM.
- Прослушайте интересные для разработчиков ПО интервью и дискуссии, зайдите в раздел Подкасты на developerWorks.
Получить продукты и технологии
- Загрузите платформу Eclipse и начните работу с Eclipse сейчас.
- Ознакомьтесь с новейшими загружаемыми файлами технологии Eclipse на IBM alphaWorks.
- Рационализируйте свой следующий проект по разработке ПО с открытым исходным кодом при помощи пробным ПО IBM, доступным на DVD или для загрузки.
Обсудить
-
Конференции по Eclipse содержат много ресурсов для людей, интересующихся использованием и распространением Eclipse.
- Станьте членом сообщества developerWorks, участвуя в блогах developerWorks.
Рамакришнан Каннан (Ramakrishnan Kannan) работает над интеграцией хост-компьютеров в Лаборатории ПО IBM Индия в Бангалоре. Он является разработчиком продуктов IBM для индивидуальной связи и коммуникационных серверов. В дополнение к своей работе разработчиком он работает с заказчиками IBM в азиатско-тихоокеанском регионе над переводом в Web-сервисы хостовых приложений Он проводил для Developerworks сессии по повышению информированности о проблемах Web-сервисов для деловых партнеров, таких как Infosys. Он является сертифицированным специалистом IBM по разработке решений на основе XML и сертифицированным специалистом Sun по Java-технологиям. Он интересуется интеграцией узлов, распределенной обработкой данных, SOA и работой с сетями.