LINUX.ORG.RU

История изменений

Исправление xwicked, (текущая версия) :

Процесс сдвинулся. Верхнюю ошибку поборол прописыванием

set path=c:\mingw64\bin
и сборка пошла. Чтобы создать lib-файл, чтобы можно было статически прилинковать к проге, скачал Visual Studio Community Edition и прогой lib сделал это, по другому никак:
lib /def:libfftw3f-3.def
lib /def:libjack64.def
lib находится по следующему пути:

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\bin\Hostx64\x86\lib.exe

Положил lib и dll в папку «w2midi». Поправил Makefile:

LIBS = -L -ljack64 -L -lfftw3-3 -lm -lpthread

Добавил "-L", так как в текущем каталоге не видел и изменил названия на фактические имена файлов.

jack\jack.h

не видел ни в какую, хоть и в переменную path добавлял, решил грубым хаком: закинул папку jack с заголовочниками в

C:\mingw64\x86_64-w64-mingw32\include

где находится stdio.h. FFTW3 прилинковался без проблем, а вот с jack аот такая ошибка:

D:\develop\w2midi>C:\mingw64\bin\mingw32-make.exe
gcc w2midi.o -o w2midi -L -ljack64 -L -lfftw3-3 -lm -lpthread
w2midi.o:w2midi.c:(.text+0x9a): undefined reference to `jack_activate'
w2midi.o:w2midi.c:(.text+0xec): undefined reference to `jack_client_close'
w2midi.o:w2midi.c:(.text+0x32b): undefined reference to `jack_client_open'
w2midi.o:w2midi.c:(.text+0x398): undefined reference to `jack_set_process_callback'
w2midi.o:w2midi.c:(.text+0x3cf): undefined reference to `jack_port_register'
w2midi.o:w2midi.c:(.text+0x40a): undefined reference to `jack_port_register'
w2midi.o:w2midi.c:(.text+0x486): undefined reference to `jack_set_buffer_size'
w2midi.o:w2midi.c:(.text+0x498): undefined reference to `jack_get_sample_rate'
w2midi.o:w2midi.c:(.text+0x4bc): undefined reference to `__imp_fftwf_malloc'
w2midi.o:w2midi.c:(.text+0x5d5): undefined reference to `__imp_fftwf_malloc'
w2midi.o:w2midi.c:(.text+0x613): undefined reference to `__imp_fftwf_plan_dft_r2c_1d'
w2midi.o:w2midi.c:(.text+0x6c9): undefined reference to `jack_port_get_buffer'
w2midi.o:w2midi.c:(.text+0x6e2): undefined reference to `jack_port_get_buffer'
w2midi.o:w2midi.c:(.text+0x6f2): undefined reference to `jack_midi_clear_buffer'
w2midi.o:w2midi.c:(.text+0x78f): undefined reference to `__imp_fftwf_execute'
w2midi.o:w2midi.c:(.text+0xddb): undefined reference to `jack_midi_event_reserve'
w2midi.o:w2midi.c:(.text+0xe8a): undefined reference to `jack_midi_event_reserve'
collect2.exe: error: ld returned 1 exit status
mingw32-make: *** [Makefile:8: w2midi] Error 1
Здесь написано, что эта ошибка решилась перестановкой параметров командной строки:
gcc -o simple_client `pkg-config --cflags --libs jack` simple_client.c
на
gcc -o simple_client simple_client.c `pkg-config --cflags --libs jack`
Или что тут произошло и как мне поправить Makefile чтобы заработало? Завтра буду дальше разбираться.

Исходная версия xwicked, :

Процесс сдвинулся. Верхнюю ошибку поборол прописыванием

set path=c:\mingw64\bin
и сборка пошла. Чтобы создать lib-файл, чтобы можно было статически прилинковать к проге, скачал Visual Studio Community Edition и прогой lib сделал это, по другому никак:
lib /def:libfftw3f-3.def
lib находится по следующему пути:

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\bin\Hostx64\x86\lib.exe

Положил lib и dll в папку «w2midi». Поправил Makefile:

LIBS = -L -ljack64 -L -lfftw3-3 -lm -lpthread

Добавил "-L", так как в текущем каталоге не видел и изменил названия на фактические имена файлов.

jack\jack.h

не видел ни в какую, хоть и в переменную path добавлял, решил грубым хаком: закинул папку jack с заголовочниками в

C:\mingw64\x86_64-w64-mingw32\include

где находится stdio.h. FFTW3 прилинковался без проблем, а вот с jack аот такая ошибка:

D:\develop\w2midi>C:\mingw64\bin\mingw32-make.exe
gcc w2midi.o -o w2midi -L -ljack64 -L -lfftw3-3 -lm -lpthread
w2midi.o:w2midi.c:(.text+0x9a): undefined reference to `jack_activate'
w2midi.o:w2midi.c:(.text+0xec): undefined reference to `jack_client_close'
w2midi.o:w2midi.c:(.text+0x32b): undefined reference to `jack_client_open'
w2midi.o:w2midi.c:(.text+0x398): undefined reference to `jack_set_process_callback'
w2midi.o:w2midi.c:(.text+0x3cf): undefined reference to `jack_port_register'
w2midi.o:w2midi.c:(.text+0x40a): undefined reference to `jack_port_register'
w2midi.o:w2midi.c:(.text+0x486): undefined reference to `jack_set_buffer_size'
w2midi.o:w2midi.c:(.text+0x498): undefined reference to `jack_get_sample_rate'
w2midi.o:w2midi.c:(.text+0x4bc): undefined reference to `__imp_fftwf_malloc'
w2midi.o:w2midi.c:(.text+0x5d5): undefined reference to `__imp_fftwf_malloc'
w2midi.o:w2midi.c:(.text+0x613): undefined reference to `__imp_fftwf_plan_dft_r2c_1d'
w2midi.o:w2midi.c:(.text+0x6c9): undefined reference to `jack_port_get_buffer'
w2midi.o:w2midi.c:(.text+0x6e2): undefined reference to `jack_port_get_buffer'
w2midi.o:w2midi.c:(.text+0x6f2): undefined reference to `jack_midi_clear_buffer'
w2midi.o:w2midi.c:(.text+0x78f): undefined reference to `__imp_fftwf_execute'
w2midi.o:w2midi.c:(.text+0xddb): undefined reference to `jack_midi_event_reserve'
w2midi.o:w2midi.c:(.text+0xe8a): undefined reference to `jack_midi_event_reserve'
collect2.exe: error: ld returned 1 exit status
mingw32-make: *** [Makefile:8: w2midi] Error 1
Здесь написано, что эта ошибка решилась перестановкой параметров командной строки:
gcc -o simple_client `pkg-config --cflags --libs jack` simple_client.c
на
gcc -o simple_client simple_client.c `pkg-config --cflags --libs jack`
Или что тут произошло и как мне поправить Makefile чтобы заработало? Завтра буду дальше разбираться.