x265 auf debian für Windows bauen

  • Ok, hab's hinbekommen.

    Kurzum: Out-of-the-Box geht hier mal gar nix :D

    Also als erstel mal darauf achten das die 64Bit Version vom x86_64-w64-mingw32 installiert ist.
    Sonst wird keine 32Bit Version von x265 gebaut und somit auch keine mit 16 BBPS support.
    (yum install mingw64-boost* mingw64-binutils* mingw64-gcc* mingw64-pdcurses* mingw64-winpthreads*)

    Wer - wie ich - mit 10 Bit support arbeiten will muß die toolchain-x86_64-w64-mingw32.cmake in ./build/msys/ abändern:

    Code
    # this one is importantSET(CMAKE_SYSTEM_NAME Windows)# specify the cross compilerSET(CMAKE_C_COMPILER   x86_64-w64-mingw32-gcc)SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)SET(CMAKE_RC_COMPILER  x86_64-w64-mingw32-windres)SET(CMAKE_ASM_YASM_COMPILER yasm)SET(CMAKE_CXX_FLAGS "-static-libgcc -static-libstdc++ -static -O3 -s")SET(CMAKE_C_FLAGS "-static-libgcc -static-libstdc++ -static -O3 -s")SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-static-libgcc -static-libstdc++ -static -O3 -s")SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-static-libgcc -static-libstdc++ -static -O3 -s")


    (die info's gibt's auf der wiki Seite vom x265)

    Bis jetzt habe ich festgestellt das durch die Bank weg alle Linux Distri's mit einer alten Version von yasm ausgeliefert werde !
    Also extra runterladen und kompilieren.

    Dann:

    Code
    cmake -DCMAKE_TOOLCHAIN_FILE=toolchain-x86_64-w64-mingw32.cmake ../../source

    Bevor's an's kompilieren geht muß aber noch die CMakeCache.txt editiert werden damit das Ganze richtig gebaut wird:

    Code
    ENABLE_SHARED:BOOL=OFFHIGH_BIT_DEPTH:BOOL=ON

    Danach ganz normal mit "make" bauen.
    Man kann's noch weiter "optimieren ;)

    Code
    strip --strip-all x265.exe && upx -9 -v -k --brute x265.exe


    (warscheinlich ist das stripping nicht mehr nötig ...)

    Auch hier wieder achtung, nur die neuste upx Version kann auch 64Bit-Binaries

    Einmal editiert, zuletzt von may24 (6. März 2015 um 08:43)

  • Bevor's an's kompilieren geht muß aber noch die CMakeCache.txt editiert werden damit das Ganze richtig gebaut wird:

    Code
    ENABLE_SHARED:BOOL=OFF
    HIGH_BIT_DEPTH:BOOL=ON

    Kann man solche Flags nicht mit ccmake bzw. cmake-gui (je nach Plattform) ändern? Dafür wurde doch das Shellskript zum Generieren des Projektes beigelegt.

  • Kann man solche Flags nicht mit ccmake bzw. cmake-gui (je nach Plattform) ändern? Dafür wurde doch das Shellskript zum Generieren des Projektes beigelegt.

    Einfach beim cmake Aufruf mit Parameter -D setzen.

    z.B.
    cmake -G "Unix Makefiles" -D HIGH_BIT_DEPTH:BOOL=ON ../../source


    may24 Aufruf würde dann z.B. so aussehen:

    Zitat


    cmake -DCMAKE_TOOLCHAIN_FILE=toolchain-x86_64-w64-mingw32.cmake -D ENABLE_SHARED:BOOL=OFF -D HIGH_BIT_DEPTH:BOOL=ON ../../source

    Einmal editiert, zuletzt von monarc99 (6. März 2015 um 13:15)

  • Ja, so ähnlich löse ich das auch in meinem MSYS-Skript, das mit die vier Varianten in vier Kopien des build/msys-Verzeichnisses baut:

    ~/remake_x265.sh

    Für ein Cross-Compile unter einem echten Linux würde das sicher etwas anders aussehen...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!