- PVSM.RU - https://www.pvsm.ru -
Всем доброго времени суток! При настройке проекта в Eclipse я столкнулся с несколькими проблемами. После попыток найти решение этих проблем, я находил очевидные советы на забугорных форумах, которые не решали проблему. Почесав затылок, я начал решать проблемы сам. В статье я детально опишу настройку Eclipse CDT, MinGW, подключение header'ов и библиотек. Статья расчитана для новичков.
Eclipse CDT — интегрированная среда разработки С и C++ на базе платформы Eclipse.
MinGW — компилятор, нативный программный порт GNU Compiler Collection (GCC) под Microsoft Windows, вместе с набором свободно распространяемых библиотек импорта и заголовочных файлов для Windows API. MinGW позволяет разработчикам создавать нативные приложения Microsoft Windows.
SFML — свободная кроссплатформенная мультимедийная библиотека, написана на C++.
Для работы Eclipse требуется Java [1].
Скачиваем Eclipse CDT с официального сайта [2] и распаковываем в любое удобное место, например C:eclipse
. Запускаем eclipse.exe
, если все заработало, прекрасно.
Далее качаем установщик MinGW [3]. Запускаем его. Видим окно с описанием, нажимаем Install
. Если нужно меняем место установки и нажимаем Continue
.
Отмечаем для установки mingw-32-base и mingw-gcc-g++.
После этого нажимаем Installation -> Apply Changes. На открывшемся окне жмем Apply и ждем пока загрузятся и установятся компоненты. Когда установка закончена, качаем msys [4]. Думаю при установке сложностей не возникнет. Теперь нужно добавить в системную переменную Path путь к папке bin
MinGW, и к папке bin
msys.
У меня получилось так: d:MinGWbin;d:msys1.0bin
Качаем SFML MinGW [5], и распаковываем куда угодно.
На этом подготовка окончена.
Запускаем Eclipse, нажимаем File -> New -> C++ Project. Создаем проект Hello World и выбираем MinGW как на картинке.
Далее ПКМ на созданном проекте -> Properties, открываем C/C++ Build -> Settings -> Tool Setting -> GCC C++ Compiler -> Includes.
1. Нажимаем Add.
2. Выбираем папку includes из директории, куда мы распаковали SFML.
После этого переходим на пункт Preprocessor и в Defined Symbols добавляем SFML_DYNAMIC.
Вот мы подошли к моменту где я получил первую ошибку. Если подключить библиотеку с расширением .a через MinGW C++ Linker -> Libraries, ничего работать не будет. Эти библиотеки нужно подключать через MinGW C++ Linker -> Miscellaneous как Other Object. Указываем путь к библиотекам SFML, нужно подключить libsfml-graphics.a, libsfml-window.a, libsfml-main.a
Заменяем весь код в автоматически созданном .cpp на этот:
#include "SFML/Graphics.hpp"
int main()
{
sf::RenderWindow window(sf::VideoMode(640, 480), "Test");
while(window.isOpen()){
sf::Event event;
while(window.pollEvent(event)){
if(event.type == sf::Event::Closed){
window.close();
}
window.clear();
window.display();
}
}
return 0;
}
Нажимаем Build
Все соберется успешно но работать не будет, так как отсутствуют dll. Копируем все из папки bin в директории SFML в папку Debug нашего проекта.
Теперь жмем ПКМ на .exe файле, который расположен в папке Debug нашего проекта, выбираем Run As -> Run Configurations, жмем C/C++ Application и нажимаем New launch configuration, после этого нажимаем Run ничего не меняя.
После этого запускать проект можно с помощью Ctrl + F11 или соответствующей иконкой на тулбаре.
Видим окно с черным фоном, все работает.
P.S. Написал статью давно, и забыл о ней =) Что то могло устареть.
Автор: Starly
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/windows/79442
Ссылки в тексте:
[1] Java: http://java.com/ru/download/
[2] официального сайта: http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/lunar
[3] установщик MinGW: http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
[4] msys: http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.11/MSYS-1.0.11.exe/download?use_mirror=netcologne
[5] SFML MinGW: http://www.sfml-dev.org/download/sfml/2.0/SFML-2.0-windows-gcc-4.7-mingw-32bits.zip
[6] Источник: http://habrahabr.ru/post/241133/
Нажмите здесь для печати.