0

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

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

我使用这个命令来编译源代码:

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

谢谢你的帮助。

4

1 回答 1

1

您不需要 winmm.a 来构建latency.c

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

使用 CMake 构建 portmidi 需要 5 分钟。

  • portmidi 来源:c:/src/portmidi217/
  • portmidi 构建: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:\

在此处输入图像描述

按配置

在此处输入图像描述

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

在此处输入图像描述

描述的设置->单击确定

在此处输入图像描述

有错误所以再次点击配置

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

看起来不错 --> 点击Generate

在此处输入图像描述

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

在此处输入图像描述

打开 windows 命令类型 make

在此处输入图像描述

建造时间很短

在此处输入图像描述

他们在那里:.a and .dll

在此处输入图像描述

  • 全部复制.ac:\minGW\lib
  • 全部复制.dllc:\minGW\bin
  • 从 所有 .h 复制到您所在的文件C:\minGW\src\portmidi217\pm_common夹。C:\minGW\src\portmidi217\porttime
    latency.c

然后就可以latency.c按照上面的方法编译了,只需要调整路径即可。

于 2013-08-10T21:28:35.000 回答