gpt4 book ai didi

c++ - 尝试使用Windows Midi API时出现gcc错误

转载 作者:行者123 更新时间:2023-12-02 10:11:27 24 4
gpt4 key购买 nike

问题很简单,我正在尝试将Windows API用于Midi,但gcc找不到这些函数的引用。我正在使用MinGW和gcc版本9.2.0。我发现类似问题的唯一解决方案是添加winmm.lib,但这也无济于事。

c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\user\AppData\Local\Temp\ccV6si7i.o: in function `main':
c:/.../test.cpp:13: undefined reference to `midiInGetNumDevs@0'
collect2.exe: error: ld returned 1 exit status
这是产生错误的C++代码:
#include <iostream>
#include <string>

#include <windows.h>
#include <mmsystem.h>

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

int main()
{
MIDIINCAPS caps;

UINT numberOfDevices = midiInGetNumDevs();
if(numberOfDevices < 0){
for (unsigned int i = 0; i < numberOfDevices; ++i) {
midiInGetDevCaps(i, &caps, sizeof(MIDIINCAPS));
std::cout << i << " : name = " << caps.szPname << std::endl;
}
}

return 0;
}

最佳答案

如@dxiv所述,您需要链接winmm库。 GCC不了解MSVC的#pragma,因此它不知道需要它。因此,在找不到功能时链接失败。
查看诸如How to specify libraries paths in gcc?之类的问题以了解操作方法。

关于c++ - 尝试使用Windows Midi API时出现gcc错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63387950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com