У меня есть приложение, которое снова связывает SDL и cairo, которое я хотел бы кросс-компилировать на Ubuntu для win64. Я использовал этот отличный пост получить кросс-компиляцию SDL, и я использовал еще один пост в блоге для кросс-компиляции zlib, libpng и libpixman.
Однако теперь я получаю сообщение об ошибке компоновщика при попытке скомпилировать мою минимальную тестовую программу:
$ make cairotest.exe
x86_64-w64-mingw32-gcc -o cairotest.o -c cairotest.c -I/usr/x86_64-w64-mingw32/include/SDL2 -Dmain=SDL_main -I/home/jshaw/x86_64-w64/include/cairo -I/home/jshaw/x86_64-w64/include/pixman-1 -I/home/jshaw/x86_64-w64/include/libpng16
x86_64-w64-mingw32-gcc -o cairotest.exe cairotest.o -L/usr/x86_64-w64-mingw32/lib -lmingw32 -lSDL2main -lSDL2 -mwindows -L/home/jshaw/x86_64-w64/lib -lcairo
collect2: error: ld returned 1 exit status
Makefile:13: recipe for target 'cairotest.exe' failed
Я должен упомянуть, что эта тестовая программа работает правильно, если я просто использую SDL2 без какого-либо кода cairo, поэтому я подозреваю, что что-то не так с библиотекой cairo, которую я кросс-компилировал. Как мне диагностировать проблему?