我试图在Mingw中构建一个PortMidi示例,但它依赖于两个库portmidi和winmm,我重新编译了portmidi以获得一个portimidi.a但我得到了丢失代码的错误。
是否可以将winmm链接到mingw,我必须使用“.a”或“.lib”库?
我使用此命令编译源:
g++ -o prg latency.c -IHeaders -LLib -lportmidi -lwinmm
感谢您的帮助。
答案 0 :(得分:1)
你不需要winmm.a来构建延迟。
你需要
libpmjni.dll.a
,libportmidi.dll.a
或
libportmidi_s.a
要建立portmidi,CMake需要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:\
)
按configure
如上所述的
设置 - >点击下一步
如上所述的
设置 - >点击确定
出现错误,请再次点击配置
下一步看起来更好点击再次配置
设置如发布或调试中所述
也许它在没有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
复制
所有.h到您latency.c
所在的文件夹。然后你可以latency.c
如上所述进行编译,你只需要调整路径。