2016-04-04 17 views
0

CLion IDE (mingw-w64, CMake) kullanılarak çalıştırılan basit bir SDL uygulaması elde etmeye çalışıyorum. Bu question numaralı belgede, SDL2'nin mingw ile çalışmasını sağlamak için aşağıdaki kitaplıkları bağladığını belirtir.SDL2 kitaplıklarını CMake ile bağlama

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

İlk 3'ün ne olduğunu ve CMake'i kullanarak bunları nasıl bulacağınızı ve bağlayacağınızı biliyorum. Kütüphanelerin geri kalanını nasıl ekleyeceğimi bilmiyorum çünkü nerede bulunduklarını veya bunlara nasıl erişebileceklerini bilmiyorum.

Ayrıca, libSDL2 ve lSDL2 arasında bir fark var mı? SDL, libSDL2.a adlı libs sağlar, ancak her zaman lSDL2'nin yazıldığını örneklerle görüyorum.

Neden lazyfoo tutorials sadece lmingw32, lSDL2main ve lSDL2 ihtiyaç dersiniz? Ben şu anda CMake içinde bağlama, ama ben

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

Vay. Onları olduğu gibi ekliyorum. Bunlara nasıl atıf yapılır? Windows'da nerede bulunurlar? 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

Kullanmak denedin mi 'find_package (SDL)' amaçlarınız için? Genellikle find_package() ile yaklaşım, kitaplıkları manuel olarak listelemekten daha kolaydır. – Tsyvarev

cevap

0

çözüm olduğu gibi sadece kütüphaneler eklemek gibi şeyler tanımsız başvurular alıyorum budur. Benim örnek olurdu:

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)