【问题标题】:Play a music file in C++ program being compiled by MinGW在 MinGW 编译的 C++ 程序中播放音乐文件
【发布时间】:2021-05-20 09:58:27
【问题描述】:

我正在使用 minGW 编译器制作一个 C++ 程序,该程序在游戏的后台循环播放歌曲文件。我将它传递到命令提示符中:D:\project g++ music.cpp

我得到的错误是:

c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\User\ AppData\Local\Temp\ccQ5qzuQ.o:music.cpp:(.text+0x2e): undefined reference to `PlaySoundA@12' collect2.exe:错误:ld 返回 1 个退出状态**

我做错了什么?对于 minGW(不是 Visual Studio),我找不到任何明确的解释。任何帮助表示赞赏!

代码是:

#include <iostream>
#include <windows.h>

int main() {
  PlaySound(TEXT("blue.wav"), NULL, SND_SYNC);
  system("pause");
  return 0;
}```

【问题讨论】:

  • PlaySoundWinmm.lib 库的一部分,您需要以某种方式将其包含在您的项目中。
  • 您是否考虑在您的计算机上安装UbuntuDebian?然后你可以使用Qt
  • This:c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: 建议使用 Linux 操作系统,但 C:\Users\User\AppData\Local\Temp\ccQ5qzuQ.o:music.cpp: 是 Windows 路径。您使用的是什么操作系统?
  • 我使用的是 Windows 10 电脑,我使用命令提示符来传递这些命令@ryyker

标签: c++ c mingw


【解决方案1】:

“对PlaySoundA 的未定义引用表明您没有在项目中包含正确的库。它需要:Mmsystem.h(包括 Windows.h)Winmm.lib Winmm.dll。

read more here

在 Code::Blocks 中添加库的步骤是:

  • 选择项目、构建选项。
  • 单击链接器设置选项卡。单击添加按钮。 ...
  • 选择库文件并单击打开按钮。单击否可避免使用相对路径。
  • 单击“确定”将库添加到列表中。 ...
  • 选择文件,保存项目。

确保 .dll 包含在您的路径环境变量中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多