【发布时间】:2016-04-04 07:06:54
【问题描述】:
我正在尝试使用 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 查找和链接它们。我不知道如何包含其余的库,因为我不知道它们的位置或如何访问它们。
另外,libSDL2 和 lSDL2 之间有区别吗? SDL 提供了名为 libSDL2.a 的库,但我总是在示例中看到它拼写为 lSDL2。
为什么lazyfoo tutorials 说您只需要lmingw32、lSDL2main 和lSDL2?这是我目前在 CMake 中链接的内容,但我得到了对诸如
SDL_windowskeyboard.c:617: undefined reference to `ImmGetIMEFileNameA'
【问题讨论】:
-
哦,哇。我只是按原样添加它们。这些是如何被引用的?它们位于 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)
-
您是否尝试将
find_package(SDL)用于您的目的?通常,使用find_package()的方法比手动列出库更容易。