将SDL2库与CMake链接

时间:2016-04-04 07:06:54

标签: cmake sdl-2 mingw-w64

我正在尝试使用CLion IDE(mingw-w64,CMake)运行一个简单的SDL应用程序。

在此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表示您只需要lmingw32lSDL2mainlSDL2?这就是我目前在CMake中链接的内容,但我对

之类的内容进行了未定义的引用
SDL_windowskeyboard.c:617: undefined reference to `ImmGetIMEFileNameA'

1 个答案:

答案 0 :(得分: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)