Перенос разработок Visual Studio C и C++ в Eclipse CDT (документация)

Рамакришнан Каннан, штатный специалист по ПО, IBM

Поскольку большинство проектов на C/C++ для Windows разработаны с помощью Microsoft Visual Studio, важно научиться переносить эти проекты в Eclipse - интегрированную среду разработки (IDE) с открытым исходным кодом. Данная статья в краткой форме даёт пошаговое описание процедуры переноса проектов Microsoft Visual Studio C/C++ (MSVC) в Eclipse. В ней сравниваются и сопоставляются преимущества MSVC и Eclipse CDT.

Платформа 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 отсутствует

О CDT

Пакет инструментальных средств разработки на 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.

Из VS в Eclipse

В данном разделе мы перенесём простое приложение HelloWorld Win32, разработанное с помощью Microsoft Visual C++ 6.

  1. Если вы не имеете существующего Win32-приложения, создайте приложение HelloWorld Win32, используя Visual Studio. Создайте make-файл, выбрав в меню Visual Studio опции Projects > Export Makefile (Проекты > Экспортировать Мake-файл).

    Рисунок 1. Создание приложения HelloWorld Win32 с помощью Visual Studio
    Создание приложения HelloWorld Win32 с помощью Visual Studio

  1. Запустите Eclipse и откройте перспективу C/C++.
    1. Выберите Window > Open Perspective > Other (Окно > Открыть Перспективу > Прочее)

      Рисунок 2a. Открытие перспективы C/C++
      Открытие перспективы C/C++

    1. Выберите перспективу C/C++

    Рисунок 2b. Выбор перспективы C/C++
    выбор перспективы C/C++

    Замечание: Перспектива C/C++ будет присутствовать в диалоге Select Perspective, только если плагин CDT установлен.

  1. Создайте стандартный Make-проект C/C++ с помощью File > New > Standard Make C++ Project (Файл > Новый > Стандартный Make-проект C++). Назовите проект HelloEclipse, введя его имя в поле Project Name (Имя Проекта) открывшегося диалога New Project (Новый Проект) и нажмите кнопку Finish (Готово).

    Рисунок 3a. Время для HelloWorld
    Время для HelloWorld

    Рисунок 3b. Назовите ваш проект HelloEclipse
    Назовите ваш проект HelloEclipse

  1. Теперь нужно импортировать файлы, созданные с помощью Visual Studio, в Eclipse. Перейдите к File > Import. Выберите Filesystem (Файловая система) в диалоговом окне Import (Импорт) и нажмите кнопку Next (Дальше). Если вновь созданный проект не виден, перейдите к Window > ShowView > C/C++ project (Окно - Показывать - Проект C/C++ ).

    Рисунок 4. Импорт файлов проекта HelloWorld из Visual Studio
    Импорт файлов из Visual Studio

  1. Просмотрите папку, где был создан проект Visual Studio, выберите для импорта файлы с расширениями *.c*, *.h*,*.rc,*.ico и .mak и нажмите кнопку Finish (Готово).

    Рисунок 5. Импорт файлов *.c*, *.h*,*.rc,*.ico и .mak
    Импорт файлов *.c*, *.h*,*.rc,*.ico и .mak

  1. Добавление переменных окружения

    Рисунок 6. Добавление переменных окружения
    Добавление переменных окружения

  1. Щелкните правой кнопкой мыши на проекте и выберите опцию Properties (Свойства). В диалоговом окне Properties for HelloEclipse (Свойства для HelloEclipse) выберите слева C/C++ Make Project и добавьте переменные окружения INCLUDE и LIB, указывающие на пути include и lib для Visual Studio. Если вы пользуетесь платформой SDK, укажите на её директории include и lib.

    Рисунок 7. Задание правильного пути для include и lib в Visual Studio
    Задание правильного пути для include и lib в Visual Studio

  1. Откройте файл .mak, импортированный из проекта Visual Studio и внесите следующие изменения:
    1. Измените конфигурацию (CFG) с Debug (Отладка) на Release (Выпуск), чтобы получить работающую версию приложения. Это будет выглядеть как CFG=HelloWin - Win32 Release.

      Рисунок 8a. Изменение конфигурации с Debug на Release
      Изменение конфигурации с Debug на Release

    1. Добавьте команду для выполнения приложения в тэг ALL: @cmd /c $(OUTDIR)\$(EXENAME).exe
    2. Задайте EXENAME=HelloWin

    Рисунок 8b. Описание EXENAME
    Задание EXENAME

  1. Следующим шагом будет создание нового целевого файла для make.
    1. Щелкните правой кнопкой мыши по текущему проекту и выберите Create Make Target (Создать Целевой Файл для Make) .

      Рисунок 9a. Создание нового целевого файла
      Создание нового целевого файла

    1. Создайте целевой файл для нашего проекта. "Target name" задайте по своему желанию. "Make target" задаёт .mak-файл, который мы изменяли на предыдущем шаге. "Build command" задаётся при снятии флажка Use default (Использовать умолчания) в команде построения, и команда эта будет nmake. Чтобы сделать режим просмотра Make targets видимым, зайдите в Window > Show View > Make Targets (Окно - Показывать - Целевые файлы Make).

    Рисунок 9b. Целевой файл должен быть HelloWin.mak
    Целевой файл должен быть HelloWin.mak

  1. Чтобы построить и запустить приложение 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.

Инструментальные средства и другие критерии

Помимо стандартной разработки в 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.


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=6300