将 SDL2 库与 CMake 链接
Linking SDL2 libraries with CMake
我正在尝试使用 CLion IDE(mingw-w64、CMake)获得一个简单的 SDL 应用程序 运行。
在这个 question 中它说 link 以下库是为了让 SDL2 与 mingw 一起工作。
-lmingw32 -lSDL2main -lSDL2 -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid
我知道前 3 个是什么以及如何使用 CMake 查找和 link 它们。我不知道如何包含其余库,因为我不知道它们位于何处或如何访问它们。
另外,libSDL2
和lSDL2
有区别吗? SDL 提供了名为 libSDL2.a
的库,但我总是在示例中看到它拼写为 lSDL2.
为什么 lazyfoo tutorials 说您只需要 lmingw32
、lSDL2main
和 lSDL2
?这就是我目前在 CMake 中 linking 的内容,但是我得到了对
之类的未定义引用
SDL_windowskeyboard.c:617: undefined reference to `ImmGetIMEFileNameA'
解决方案是按原样添加库。我的例子是:
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)
我正在尝试使用 CLion IDE(mingw-w64、CMake)获得一个简单的 SDL 应用程序 运行。
在这个 question 中它说 link 以下库是为了让 SDL2 与 mingw 一起工作。
-lmingw32 -lSDL2main -lSDL2 -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid
我知道前 3 个是什么以及如何使用 CMake 查找和 link 它们。我不知道如何包含其余库,因为我不知道它们位于何处或如何访问它们。
另外,libSDL2
和lSDL2
有区别吗? SDL 提供了名为 libSDL2.a
的库,但我总是在示例中看到它拼写为 lSDL2.
为什么 lazyfoo tutorials 说您只需要 lmingw32
、lSDL2main
和 lSDL2
?这就是我目前在 CMake 中 linking 的内容,但是我得到了对
SDL_windowskeyboard.c:617: undefined reference to `ImmGetIMEFileNameA'
解决方案是按原样添加库。我的例子是:
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)