Пытаясь построить пример PortMidi в Mingw

Я пытаюсь построить пример PortMidi в Mingw, но это зависит от двух библиотек portmidi и winmm, я перекомпилировал portmidi, чтобы получить portimidi.a, но я получаю ошибки из-за отсутствующего кода.

Можно ли связать winmm с mingw, и я должен использовать библиотеки ".a" или ".lib"?

Я использую эту команду для компиляции источника:

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

Спасибо за вашу помощь.

1 ответ

Решение

Вам не нужен winmm.a для создания latency.c

тебе нужно
libpmjni.dll.a, libportmidi.dll.a или же
libportmidi_s.a

Для сборки portmidi с CMake требуется 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

  • Загрузите или используйте Cmake
  • в папке c:\cmake\bin дважды щелкните cmake-gui.exe

разархивировать portmidi в папку c:\minGW\src\portmidi217 вы можете увидеть на следующем изображении
(заменить все T:\ с C:\ конечно)

введите описание изображения здесь

нажмите настроить

введите описание изображения здесь

настройки как описано -> нажмите далее

введите описание изображения здесь

настройки, как описано -> нажмите ОК

введите описание изображения здесь

там ошибки, так что нажмите снова настроить

введите описание изображения здесь

следующий выглядит лучше, нажмите снова настроить

введите описание изображения здесь

настройки как описано Release или Debug
возможно это работало без c:\msys\1.0\bin\sh.exe
нажмите снова настроить

введите описание изображения здесь

выглядит хорошо -> нажмите Generate

введите описание изображения здесь

CD на ваш только что построенный c:\minGW\portmidi

введите описание изображения здесь

тип команды open 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 скомпилируйте как описано выше, вам просто нужно скорректировать пути.

Другие вопросы по тегам