2016-04-04 27 views
0

私は、CLion IDE(mingw-w64、CMake)を使って簡単なSDLアプリケーションを実行しようとしています。CMakeとSDL2ライブラリをリンクする

このquestionでは、SDL2をmingwと連動させるために以下のライブラリをリンクしています。

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

私は最初の3つは何か、そしてCMakeを使ってそれらを見つけてリンクする方法を知っています。彼らがどこに住んでいるのか、どのようにアクセスするのか分からないので、残りの図書館をどのように含めるのか分かりません。

また、libSDL2lSDL2の間に違いはありますか? SDLはlibSDL2.aという名前のライブラリを提供していますが、例ではlSDL2という綴りが付いています。

はなぜlazyfoo tutorialsはあなただけlmingw32lSDL2main、および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)

関連する問題