Конфигурация SDL в Eclipse IDE
Я пытаюсь запустить код OpenGL на Eclipse в среде Linux x86 (ubuntu): http://nehe.gamedev.net/tutorial/vertex_buffer_objects/22002/ Код будет работать правильно после ввода в командной строке команды
g++ main.cpp error.cpp lesson45.cpp -o урок45 -L/usr/X11R6/lib/ -lGL -lGLU
sdl-config --cflags --libs
Это инструкция из файла make. Сейчас я пытаюсь запустить код на Eclipse, я знаю, что должен установить библиотеки линкеров GL и GLU и каталог библиотек линкеров /usr/X11R6/lib/. Однако в отношении sdl-config --cflags --libs
Я не уверен, как настроить его в Eclipse.
3 ответа
Создайте новый проект C++ (Файл> Создать> Проект C++). Вам нужно будет выбрать набор инструментов - Linux GCC.
Если вы хотите использовать C++11, сделайте следующее:
- Щелкните правой кнопкой мыши ваш проект в "Package Explorer" и выберите "Properties".
- Выберите (Сборка C/C++> Настройки> Компилятор GCC C++> Разное)
- Под "Другие флаги" добавьте: -std= C++0x
- Нажмите Применить, затем ОК
Настройте Eclipse для использования SDL2
- Щелкните правой кнопкой мыши ваш проект в "Package Explorer" и выберите "Properties".
- Выберите (C/C++ General > Пути и символы> Библиотеки)
- Нажмите "Добавить", добавьте "SDL2" и нажмите "ОК".
- Нажмите "Добавить", добавьте "SDL2main" и нажмите "ОК".
Этот процесс был проверен и подтвержден работой, хотя я не принимаю это во внимание. Информация получена ЗДЕСЬ
Я попытаюсь дать более подробный ответ из комбинации ранее приведенных предложений. В системе Fedora22 с Eclipse Mars версии 4.5.1 это сработало для меня. По предложению @Zammalad, с некоторыми изменениями, сначала
- Создайте новый проект C++ (Файл> Создать> Проект C++).
- Вам нужно будет выбрать набор инструментов - Linux GCC.
Если вы хотите использовать C++11, сделайте следующее:
- Щелкните правой кнопкой мыши ваш проект в "Package Explorer" и выберите " Properties".
- Выберите (Сборка C/C++> Настройки> Компилятор GCC C++> Диалект)
- В разделе "Стандарт языка" выберите "ISO C++11 (-std = C++ 0x)". Нажмите Применить, затем ОК.
Настройте Eclipse для использования SDL2
На этом этапе я бы предложил использовать подход @esperanto, чтобы использовать системный терминал / оболочку, чтобы выяснить или проверить наличие / местоположение необходимых файлов / библиотек для SDL2 в вашей системе.
Во-первых, если вы хотите найти расположение необходимых библиотек в вашей системе, выполнение следующего в терминале предоставит вам местоположение "include" и другие флаги компилятора / препроцессора.
$ sdl2-config --cflags
Аналогично, чтобы вывести список библиотек / флагов-компоновщиков
$ sdl2-config --libs
Например, в моей системе Fedora22 (64-битная) вывод выглядит так
$ sdl2-config --cflags --libs
-I/usr/include/SDL2 -D_REENTRANT
-lSDL2 -lpthread
Вы можете протестировать компиляцию в отдельном временном каталоге без файлов проекта, связанных с eclipse, т.е. только с исходными файлами, например:
$ mkdir /tmp/testing
$ cp -r main.cpp error.cpp lesson45.cpp /tmp/testing/.
$ cd /tmp/testing
$ g++ `sdl2-config --cflags --libs` -o lesson45 main.cpp error.cpp lesson45.cpp
Теперь, чтобы использовать библиотеки / пути SDL2 в Eclipse, добавьте необходимые библиотеки из sdl2-config --libs
выход
- Щелкните правой кнопкой мыши ваш проект в "Package Explorer" и выберите " Properties".
- Выберите (C/C++ General> Пути и символы> Библиотеки)
- Нажмите "Добавить" и введите
SDL2
и нажмите ОК - Нажмите "Добавить" и введите
pthread
и нажмите ОК
Чтобы добавить директиву препроцессора из sdl2-config --cflags
выход
- Щелкните правой кнопкой мыши ваш проект в "Package Explorer" и выберите " Properties".
- Выберите (* C/C++ Build> Настройки> Компилятор GCC C++> Препроцессор)
- В разделе "Определенные символы (-D)" нажмите значок "Добавить"
- Тип
_REENTRANT
и нажмите ОК
Если вы не можете найти ничего более цивилизованного для настройки Eclipse, вы всегда можете извлечь эту информацию из sdl-config
вызовите и настройте параметры вручную:
## Compiler flags
$ sdl-config --cflags
-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
## Linker flags
$ sdl-config --libs
-L/usr/lib/x86_64-linux-gnu -lSDL