You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中PlaySound()函数无法运行,编译报错求助

问题描述

我尝试在Visual Studio Code中制作一个简单的音频播放器,但程序运行时出现错误:预启动任务'C/C++: g++.exe build active file'终止,退出码为-1。注释掉PlaySound所在行后程序可正常运行。

以下是我的代码:

#include <Windows.h>
#include <mmsystem.h>
#include <iostream>

#pragma comment(lib, "winmm.lib")

using namespace std;

//string SONGNAME;

int main(){
    //SONGNAME = "Testing.wav";
    cout << "Playing music \n";
    PlaySound(TEXT("Testing.wav"), NULL , SND_FILENAME | SND_SYNC | SND_LOOP);
    return 0;
}

我的资源管理器窗口如下:
VS Code资源管理器,显示songPlayer.cpp和Testing.wav文件

我怀疑部分原因是选择了Visual Studio Code而非Visual Studio,但未在网上找到相关信息。编译命令及报错信息如下:

cmd /c chcp 65001>nul && C:\msys64\ucrt64\bin\g++.exe -fdiagnostics-color=always -g "C:\Users\Ivan S\OneDrive\Desktop\cplusplusprogramzzz\songplayer\songPlayer.cpp" -o "C:\Users\Ivan S\OneDrive\Desktop\cplusplusprogramzzz\songplayer\songPlayer.exe" 
C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\IVANS~1\AppData\Local\Temp\ccySdqvK.o: in function `main':
C:/Users/Ivan S/OneDrive/Desktop/cplusplusprogramzzz/songplayer/songPlayer.cpp:14:(.text+0x3e): undefined reference to `__imp_PlaySoundA'
collect2.exe: error: ld returned 1 exit status

解决方法

报错核心是链接器找不到PlaySound的定义,原因是MinGW不支持Visual Studio专属的#pragma comment(lib, "winmm.lib")指令,和你用VS Code还是Visual Studio无关。

两种解决方式:

  1. 手动修改编译命令:在g++编译命令末尾添加-lwinmm参数,告诉链接器要链接winmm库。修改后的命令示例:

    g++ -g "C:\Users\Ivan S\OneDrive\Desktop\cplusplusprogramzzz\songplayer\songPlayer.cpp" -o "C:\Users\Ivan S\OneDrive\Desktop\cplusplusprogramzzz\songplayer\songPlayer.exe" -lwinmm
    
  2. 配置VS Code的编译任务:打开.vscode/tasks.json,找到编译任务的args数组,添加"-lwinmm"条目。修改后的tasks.json片段示例:

    "args": [
        "-fdiagnostics-color=always",
        "-g",
        "${file}",
        "-o",
        "${fileDirname}\\${fileBasenameNoExtension}.exe",
        "-lwinmm" // 新增该行,链接winmm库
    ],
    

额外提示:TEXT()宏会根据字符集切换调用PlaySoundA或PlaySoundW,如果遇到路径编码问题,可以直接显式调用PlaySoundA并传入ANSI格式的文件路径。


内容的提问来源于stack exchange,提问作者Ivan Sepulveda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:12:43