试图在Mingw中构建一个PortMidi示例

时间:2013-08-09 22:38:17

标签: linker mingw midi .a .lib

我试图在Mingw中构建一个PortMidi示例,但它依赖于两个库portmidi和winmm,我重新编译了portmidi以获得一个portimidi.a但我得到了丢失代码的错误。

是否可以将winmm链接到mingw,我必须使用“.a”或“.lib”库?

我使用此命令编译源:

g++ -o prg latency.c -IHeaders -LLib -lportmidi -lwinmm 

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你不需要winmm.a来构建延迟。

你需要
libpmjni.dll.alibportmidi.dll.a
libportmidi_s.a

要建立portmidi,CMake需要5分钟。

  • portmidi source:c:/ src / portmidi217 /
  • portmidi build:c:/ minGW / portmidi

然后您可以使用以下命令编译它。

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
  • 在c:\ cmake \ bin文件夹中双击cmake-gui.exe

将portmidi解压缩到您可以在下一张图片中看到的文件夹c:\minGW\src\portmidi217 (当然用T:\替换所有C:\

enter image description here

按configure

enter image description here

如上所述的

设置 - >点击下一步

enter image description here

如上所述的

设置 - >点击确定

enter image description here

出现错误,请再次点击配置

enter image description here

下一步看起来更好点击再次配置

enter image description here

设置如发布或调试中所述 也许它在没有c:\msys\1.0\bin\sh.exe的情况下有效 再次单击“配置”

enter image description here

看起来不错 - >点击Generate

enter image description here

cd到您刚建成的c:\minGW\portmidi

enter image description here

打开Windows命令类型make

enter image description here

构建

需要很短的时间

enter image description here

他们是:.a and .dll

enter image description here

  • 将所有.a复制到c:\minGW\lib
  • 将所有.dll复制到c:\minGW\bin
  • C:\minGW\src\portmidi217\pm_commonC:\minGW\src\portmidi217\porttime复制 所有.h到您latency.c所在的文件夹。

然后你可以latency.c如上所述进行编译,你只需要调整路径。