На сьогодні спроба зробити компіляцію за методом "Компіляція mpv player для OS Windows у VM OS OpenSUSE" має невдачу.
Задача компілювати проект для операційної системи Windows x64. Тому використаємо метод "Native compilation with MSYS2" котрий рекомендовано на сайті виробника .
Якщо використовувати усе як описано, все працює для динамічного лінкування. Але якщо потрібно створити статичне лінкування без застосування додаткових DLL файлів, то виникає проблема у версії MPV "git-0d40140".
https://github.com/mpv-player |
Якщо використовувати усе як описано, все працює для динамічного лінкування. Але якщо потрібно створити статичне лінкування без застосування додаткових DLL файлів, то виникає проблема у версії MPV "git-0d40140".
./waf configure CC=gcc --enable-libmpv-shared --enable-static-build --enable-gpl3 --prefix=/mingw64 /waf install ... [427/444] Compiling libmpv/mpv.def [428/444] Compiling libmpv/mpv.pc.in - install /mingw64/include/mpv/client.h (from libmpv/client.h) - install /mingw64/include/mpv/qthelper.hpp (from libmpv/qthelper.hpp) - install /mingw64/include/mpv/opengl_cb.h (from libmpv/opengl_cb.h) - install /mingw64/share/applications/mpv.desktop (from etc/mpv.desktop) - install /mingw64/etc/mpv/encoding-profiles.conf (from etc/encoding-profiles.conf) - install /mingw64/share/icons/hicolor/16x16/apps/mpv.png (from etc/mpv-icon-8bit-16x16.png) - install /mingw64/share/icons/hicolor/32x32/apps/mpv.png (from etc/mpv-icon-8bit-32x32.png) - install /mingw64/share/icons/hicolor/64x64/apps/mpv.png (from etc/mpv-icon-8bit-64x64.png) - install /mingw64/share/icons/hicolor/scalable/apps/mpv.svg (from etc/mpv-gradient.svg) - install /mingw64/bin/mpv.com (from build/mpv.com) [439/444] Linking build/mpv.exe + install /mingw64/bin/pkgconfig/mpv.pc (from build/libmpv/mpv.pc) [441/444] Linking build/mpv-1.dll D:/develop-tools/msys64/mingw64/lib\libcelt0.a(celt.o):(.text+0x4d50): multiple definition of `celt_encoder_get_size' D:/develop-tools/msys64/mingw64/lib\libopus.a(celt_encoder.o):(.text+0x270): first defined here D:/develop-tools/msys64/mingw64/lib\libcelt0.a(celt.o):(.text+0x4ef0): multiple definition of `celt_encoder_init' D:/develop-tools/msys64/mingw64/lib\libopus.a(celt_encoder.o):(.text+0x5f60): ...
За рекомендаціями суспільства rossy igv, знайдено - що проблемою є використання пакунку ffmpeg, та інших що встановлюється за командами:
pacman -S mingw-w64-x86_64-ffmpeg pacman -S mingw-w64-x86_64-libdvdnav mingw-w64-x86_64-libguessТому є рекомендація видалити ці пакунки , і скомпілювати ffmpeg самостійно з динамічними бібліотеками.
pacman -R mingw-w64-x86_64-ffmpeg pacman -Rmingw-w64-x86_64-libbluray pacman -R mingw-w64-x86_64-libguess rm \mingw64\x86_64-w64-mingw32\lib\libpthread.dll.a rm \mingw64\lib\libjpeg.dll.a rm \mingw64\lib\libiconv.dll.a Наступний крок компіляція ffmpeg. Є інструкція для компіляції ffmpeg для MSys.
cd ~ git clone https://github.com/FFmpeg/FFmpeg cd ffmpeg ./configure --enable-gpl --disable-debug --prefix=/mingw64 --enable-shared make -j4 && make installЯкщо в системі не має пакунку make, треба встановити його.
pacman -S makeПісля цього можна приступати до компіляції MPV.
./waf configure CC=gcc --enable-libmpv-shared --enable-static-build --enable-gpl3 --prefix=/mingw64 ./waf install
mpv компіляція |
Додаю скрипт (mpv-build/scripts/mpv-searchlib) котрий збирає динамічно залежні бібліотеки до однієї теки:
#!/bin/sh set -e BUILD="$(pwd)/.." BUILDML=$BUILD/build_libs/mpvlibs BUILDMPV=$BUILD/mpv/build mkdir -p $BUILDML cp $BUILDMPV/mpv-1.dll $BUILDML export PATH="$BUILD/build_libs/bin/:$PATH" for i in $(ldd $BUILDML/mpv-1.dll | grep -v "/c/" | awk '{print $3}' | grep / ) do echo $i cp $i $BUILDML done
P.S.
А якщо не виходить то може краще взяти готовий білд тут : https://mpv.srsfckn.biz/ ?
Немає коментарів:
Дописати коментар