2016-01-27 2 views
0

Я пытаюсь переучивать C++, и я работаю с Eclipse CDT в Windows с помощью MinGW, и я бы хотел включить внешнюю библиотеку, не изменяя установку MinGW. В настоящее время я работаю с SDL2, но это более обобщенный вопрос.Внешнее включение библиотеки - Eclipse CDT и MinGW

Я успешно скомпилирован и запустить мою тестовую программу, используя следующие шаги:

  1. ВЫГРУЖАТЬ SDL2-devel-2.0.4.mingw.tar.gz (here) и извлечь его
  2. Копирование файлов из SDL2-2.0.4\ в моей MinGW установки:
    • \ include \ SDL2 to% MinGW% \ include \
    • \ lib \ libSDL2.a до% MinGW% \ lib \
    • \ Lib \ libSDL2.dll.a в% MinGW% \ Lib \
    • \ Lib \ libSDL2.la в% MinGW% \ Lib \
    • \ Lib \ libSDL2main.a в% MinGW% \ Lib \
    • ++ Build- Настройки C/C>: (вкладка "Параметры инструмента"
    • \ Bin \ SDL2.dll в% MinGW% \ Bin \
  3. Добавить библиотеки (в порядке убывания) линкера через Проект-> Свойства) MinGW C++ Linker-> Библиотеки: "Библиотеки (-l)" раздел
    • SDL2main
    • SD L2
  4. #include <SDL2\SDL.h> в моем каст/ч файла
  5. построить программу
  6. Copy SDL2.dll в выходной каталог с моей .exe
  7. Run

На этой конкретной машине, я m, используя сборку i686-w64-mingw32 SDL2-2.0.4, но я хотел бы сразу указать на нее компоновщик без копирования на установку MinGW на шаге 2 выше. Затем я мог просто включить эти файлы в свое репо, не ожидая корректно модифицированной установки MinGW, или изменив указатель на сборку x86_64-w64-mingw32 на другой машине и т. Д.

На немного другой ноте (и, возможно, отдельный вопрос), есть ли способ автоматизации этапа 6? Я не могу найти его, и ручное копирование DLL на каждую чистую сборку довольно раздражает ...

ответ

1

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

  1. Проект-> Свойства: C/C++ Build-> Настройки: ("Параметры инструмента" вкладка) MinGW C++ от компилятора> Включает: "Включать пути (-I)" раздел

  2. Проект- > Свойства: C/C++ Build-> Настройки: ("Параметры инструмента" вкладка) MinGW C++ Linker-> Библиотеки: "Библиотека путь поиска (-L)" раздел

что касается другого вопроса, убедитесь, что у вас есть SDL2.dll на вашем PATH, и вам не придется его копировать. Если вы действительно хотите его скопировать, вы можете добавить его к этапам пост-сборки: Project-> Properties: C/C++ Build-> Settings: (вкладка «Создание шагов»). Послестрочные шаги: Команда

+0

Спасибо! Шаги после сборки выглядят довольно неуклюжими здесь ... что делать, если есть какие-то другие файлы без компиляции? (то есть config/ini или README) ... Кроме того, существует ли способ использовать относительные пути для любого из этих (или ссылок на пути к проекту)? Я успешно использовал полные пути, но я предпочел бы быть более переносимым. – chezy525

Смежные вопросы