首页 > 解决方案 > 使用 CLion 在 C++ 中播放声音

问题描述

我正在尝试制作一个播放音乐的简单 C++ 程序,但出现此错误。

undefined reference to __imp_PlaySoundA'

从我读到的内容中,我发现我没有任何实现 PlaySound 的源代码。我知道我应该在我的链接器中添加对 winmm.lib 的引用,但我只在 VisualStudio 中找到了如何执行此操作。有没有办法在 CLion 中做到这一点?我什至不确定 CLion 是否有类似的东西。

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

int main() {  
    PlaySound("file_name.mp3", nullptr, SND_FILENAME | SND_ASYNC);
    return 0;
}

这没有帮助:

什么是未定义的引用/未解决的外部符号错误,我该如何解决?

标签: c++clionjetbrains-ideplaysound

解决方案


我已经解决了,需要在CMake文件中添加winMM.Lib。加上文件不能是 .mp3 而是 .wav (也许其他一些,我没有尝试)。

# Link to GLFW, GLEW and OpenGL
target_link_libraries(template PUBLIC
        ${GLFW_LIBRARIES}
        ${GLEW_LIBRARIES}
        ${OPENGL_LIBRARIES}
        winMM.Lib)

推荐阅读