【发布时间】:2020-06-06 18:09:59
【问题描述】:
我正在 Windows 上编译一个 C++ 程序。该程序使用 SDL2 库。我运行以下 pkg-config 命令来获取正确的标志以传递给 GCC 编译器。
$ pkg-config sdl2 --cflags --libs
给出输出
-lpthread -lasound -IC:/sdl2/include/SDL2 -LC:/sdl2/lib -lSDL2
但是,当使用 GCC 的这些标志时,程序无法编译,出现错误
找不到 -lasound
这是我需要获取才能使用 SDL2 的库,还是我在某处犯了错误?
【问题讨论】:
-
嗯?它给了我
-lmingw32 -lSDL2main -lSDL2 -mwindows,没有提到-lasound。您从哪里获得 SDL2?sdl2.pc的内容是什么? -
@HolyBlackCat 我通过 Windows 包管理器 Scoop 获得了 SDL2。
sdl2.pc的内容是```#sdl pkg-config源文件prefix=exec_prefix=${prefix} libdir=${exec_prefix}/lib Includedir=${prefix}/include 名称:sdl2 描述:Simple DirectMedia层是一个跨平台的多媒体库,旨在通过 OpenGL 和 2D 视频帧缓冲区提供对音频、键盘、鼠标、操纵杆、3D 硬件的低级访问。版本:2.0.10 要求:冲突:库:-L${libdir} -lSDL2 Libs.private:-lSDL2 Cflags:-I${includedir}/SDL2 -lpthread -lasound ``` -
我想这一定是 Scoop 提供的 SDL2 版本的问题。
-
是的,要么您不小心修改了此文件,要么 Scoop 运送了损坏的文件。我建议下载 SDL2 的官方二进制文件,或者使用 MSYS2 包。
-
会的。感谢您的帮助。
标签: c++ gcc sdl sdl-2 pkg-config