12 июня 2011 г.

Настройка C++ проекта в Eclipse CDT с MinGW

Ради интереса решил попробовать писать код C/C++ в Eclipse. Надо сказать задача оказалась не из "установил и заработало". По крайней мере под Винду и для компилятора MinGW. Но и слишком сложной процедуру тоже не назовешь. Пришлось немного посерфить по Инету в поисках ответов на вопросы. И, надо сказать, всех ответов в одном месте я не нашел. А некоторых не нашел совсем. Поэтому поделюсь своим опытом настройки Eclipse CDT.

Итак, первое, что нам нужно — сам Eclipse CDT (то есть для Си, есть еще много для чего). Берем его с официального сайта абсолютно безвозмездно, то есть даром. Размер дистрибутива на момент написания был примерно 87 Mb. Распаковываем архив в любой каталог, например C:\Program Files\eclipse.

Еще нам нужен сам компилятор и линкер MinGW. Он тоже загружается бесплатно. Но у меня он уже был установлен, а Вам возможно придется его установить. Если у Вас нет переменных окружения ОС для него, то их следует добавить: MinGW = путь_к_корневой_папке_mingwa и PATH += ;путь_к_корневой_папке_mingwa\bin\. Теперь лучше перезагрузить систему.

Запускам Eclipse. Создем новый проект C++ -> Executable -> Empty Project. Даем ему название. Сейчас проект у нас пока пустой. К тому же, если не видно папки Includes в дереве проекта, то её нужно добавить: Правой кнопкой на проекте во вкладке проекта -> Properties -> C/C++ General -> Path and Symbols -> Library Path. Добавляем пути до всех, нужных нам библиотек. Надо сказать, что Eclipse умный и дочерние папки добавляет рекурсивно.

Мы сразу немного усложним задачу, чтобы быть ближе к реальности и будем собирать проект из уже готовых файлов *.h и *.cpp, а не мучать старый добрый хеллоуворлд. Для нашего проекта понадобятся библиотеки DirectX. Поэтому в Library Path пишем путь до папки lib уже установленной (надеюсь) DirectX SDK. Во вкладке Libraries записываем dxguid и d3d9. Для OpenGL: opengl32 и glu32. Для Windows: gdi32. Во вкладке Includes прописываем путь до папки includes от DirectX SDK.

Тепер нам нужны сами файлы кода. Качаем недавно созданный мной маленький фреймверк для учебных примеров OpenGL и DirectX здесь. И все файлы архива простым перетаскиванием кидаем на наш проект. Eclipse спросит что делать, мы ответим — скопировать.

Теперь во вкладках Eclipse'а находим вкладку Make Target (по-умолчанию она должна быть справа) -> правой кнопкой на названии проекта -> main.cpp. Нажимаем правой кнопкой на проекте -> Build Project и наш проект готов! Можно запускать.

Здесь нас ждет один крохотный сюрприз. Если запускать экзешник в Эклипсе, то он запустится как и должен (на самом деле это только кажется :) ). А вот если запустить его вне IDE, то мы увидим один неприятный момент: вместе с нормальным окном Винды открывается еще и окно консоли. Этого нам ну никак не нужно! Убрать окно консоли для Windows-приложения в Eclipse можно. И просто. Правый клик на проекте -> Properties -> C/C++ Build -> Settings -> MinGW C++ Linker -> Miscellanious -> Linker Flag -> -mwindows.

Альтернативным способом настройки компиляции является файл makefile (может так даже проще). Но нам же нужно как-то использовать графический интерфейс? :)

8 комментариев:

Vladan комментирует...

Подскажите, пожалуйста в чем может быть дело: установил CDT, MinGW, msys, прописал пути к папкам bin в PATH. Но eclipse пишет Program 'g++' is not found in $PATH и аналогично для gcc. Хотя из командной строки эти программы успешно запускаются.

Иван комментирует...

Не могу точно сказать вот так вот удаленно, но похоже где-то в Eclipse прописаны всё же не те пути.

wowa комментирует...

Я использую несколько компиляторов MinGW, как мне настроить проект, что бы он использовал один из них не меняя переменные окружения?

Анонимный комментирует...

Ещё в Eclipse такую штуку надо сделать, ибо мэйк-файл в MinGW может называться mingw32-make.exe
And last but not least, go to "Build Settings" tab, uncheck "Use default command", and enter new build command as "mingw32-make -f makefile". This will have Eclipse use mingw32-make rather than make command. That's it, click on Apply and then on OK.

Иван комментирует...

> как мне настроить проект, что бы он использовал один из них не меняя переменные окружения?

Я таких способов не встречал, но ничего невозможного нет, думаю. Выход есть всегда, правда иногда...

Анонимный комментирует...

"Если у Вас нет переменных окружения ОС для него, то их следует добавить: MinGW = путь_к_корневой_папке_mingwa и PATH += ;путь_к_корневой_папке_mingwa\bin\. Теперь лучше перезагрузить систему."

А куда их нужно добавить?

Иван комментирует...

Для Вин-ХР, например, один из способов: правой кнопкой по "Мой компьютер" → "Свойства" → "Дополнительно" → "Переменные среды" → "Создать" (для MinGW) или ищем Path и жмем "Изменить" (для Path)

Анонимный комментирует...

Ivan благодарю

Отправить комментарий