我试图在 Mingw 中构建一个 PortMidi 示例,但它依赖于两个库 portmidi 和 winmm,我重新编译了 portmidi 以获得 portimidi.a,但我收到了缺少代码的错误。
是否可以将 winmm 链接到 mingw,并且我必须使用“.a”或“.lib”库?
我使用这个命令来编译源代码:
g++ -o prg latency.c -IHeaders -LLib -lportmidi -lwinmm 
谢谢你的帮助。
您不需要 winmm.a 来构建latency.c
你需要
libpmjni.dll.a,libportmidi.dll.a或者
libportmidi_s.a
使用 CMake 构建 portmidi 需要 5 分钟。
然后,您可以使用以下命令对其进行编译。
gcc.exe  -c -g -I/c/src/portmidi217/pm_common -I/c/src/portmidi217/porttime -MMD -MP -MF build/Debug/latency.o.d -o build/Debug/latency.o latency.c
mkdir -p dist/Debug
gcc.exe  -o dist/Debug/latency build/Debug/latency.o -L/c/minGW/portmidi -lpmjni.dll -lportmidi.dll 
使用 CMake 构建 portmidi
cmake-gui.exe将 portmidi 解压缩到c:\minGW\src\portmidi217下一张图片中可以看到的文件夹
(当然全部替换T:\为C:\)

按配置

描述的设置 --> 点击下一步

描述的设置->单击确定

有错误所以再次点击配置

下一个看起来更好再次单击配置

描述的设置发布或调试
可能无需c:\msys\1.0\bin\sh.exe
再次单击配置即可工作

看起来不错 --> 点击Generate

cd 到你刚刚建立的c:\minGW\portmidi

打开 windows 命令类型 make

建造时间很短

他们在那里:.a and .dll

.a到c:\minGW\lib.dll到c:\minGW\binC:\minGW\src\portmidi217\pm_common夹。C:\minGW\src\portmidi217\porttimelatency.c然后就可以latency.c按照上面的方法编译了,只需要调整路径即可。