我试图在 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\bin
C:\minGW\src\portmidi217\pm_common
夹。C:\minGW\src\portmidi217\porttime
latency.c
然后就可以latency.c
按照上面的方法编译了,只需要调整路径即可。