VSCode中使用C++播放音频报错undefined reference to `__imp_PlaySoundA'如何解决
VSCode C++ PlaySoundA未定义引用报错解决
错误原因
你遇到的undefined reference to __imp_PlaySoundA报错属于链接阶段错误,原因是调用了Windows多媒体API PlaySound,但编译时没有链接对应的依赖库winmm.lib。
修复步骤
若使用MinGW工具链(VSCode C++开发最常用配置)
- 打开项目
.vscode目录下的tasks.json文件 - 在编译参数
args数组的末尾添加链接参数-lwinmm,示例配置如下:
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc.exe 生成活动文件", "command": "你的mingw安装路径/bin/gcc.exe", "args": [ "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe", "-lwinmm" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true } } ], "version": "2.0.0" }
- 保存配置后重新编译运行程序即可
若使用MSVC工具链
- 打开
tasks.json,在编译参数args数组末尾直接添加winmm.lib即可
配套代码校验
确保你的代码头部已经引入了对应的头文件:
#include <windows.h> #include <mmsystem.h>
如果播放本地音频,优先使用绝对路径测试,避免相对路径匹配错误导致播放失败。
内容的提问来源于stack exchange,提问作者Harvinder
相关产品推荐
相关产品推荐

