2016-04-04 2 views
0

Я пытаюсь получить простое приложение SDL, работающее с использованием CLion IDE (mingw-w64, CMake).Связывание библиотек SDL2 с CMake

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

-lmingw32 -lSDL2main -lSDL2 -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid 

Я знаю, что такое первые 3 и как их найти и связать с помощью CMake. Я не знаю, как включить остальные библиотеки, потому что я не знаю, где они находятся, или как получить к ним доступ.

Также существует разница между libSDL2 и lSDL2? SDL предоставляет libs с именем libSDL2.a, но я всегда вижу в примерах, что он пишется lSDL2.

Почему lazyfoo tutorials говорят, что нужно только lmingw32, lSDL2main и lSDL2? Это то, что я в настоящее время я связывая в CMake, но я получаю неопределенные ссылки на такие вещи, как

SDL_windowskeyboard.c:617: undefined reference to `ImmGetIMEFileNameA' 
+0

О, ничего себе. Я просто добавляю их как есть. Как они ссылаются? Где они расположены в Windows? target_link_libraries (Dark_Knights $ {MINGW32_LIBRARY} $ {SDL_MAIN_LIBRARY} $ {SDL_LIBRARY} -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid) – ShrimpCrackers

+0

Пробовали ли вы использовать 'find_package (SDL)' для ваших целей? Обычно подход с 'find_package()' проще, чем вручную перечислять библиотеки. – Tsyvarev

ответ

0

Решение было просто добавить библиотеки, как есть. Мой пример был бы:

target_link_libraries(Dark_Knights ${MINGW32_LIBRARY} ${SDL_MAIN_LIBRARY} ${SDL_LIBRARY} -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid)

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