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