2017-05-17 2 views
0

Ich habe einen Fehler in libvpx gefunden, der meine Verwendung von Alpha in Videos behindert. Ich habe den Fehler behoben, aber es bedeutet, dass ich libvpx neu aufbauen muss (der vorherige Build ist mit der Zeit verloren, abgesehen von den Headern und Bibliotheken). Ich habe geholt Version 1.6.1 und die Anweisungen hier https://github.com/webmproject/libvpx, die Visual Studio 2015-Lösung zu erzeugen mit dieser Befehlszeile in Bash unter Windows 10:Erstellen von libvpx mit Visual Studio 2015 unter Windows 10 mit Bash

configure --target=x86_64-win64-vs14 --as=auto --enable-vp9-highbitdepth --enable-vp8 --enable-vp9 --enable-error-concealment --enable-runtime-cpu-detect --enable-libyuv 

Alles sieht gut aus: Ich habe die Lösung in Visual geöffnet habe Studio 2015 und versuchte, das VPX-Projekt zu erstellen, die viele Objektdateien und zusammengebauten Montage Quellen nachgegeben hat, aber letztlich bekomme ich folgende Fehlermeldung:

LINK : fatal error LNK1181: cannot open input file 'x64\Debug\vpx\vpx_ports_emms_asm.obj' 

Es gibt keine Quelldatei mit diesem Namen, so gibt es keine entsprechenden obj-Datei. Beim Blick durch das Projekt, gibt es eine Reihe von .mk Dateien von denen die Namen vpx_ports hat und den folgenden Text enthält:

PORTS_SRCS-yes += vpx_ports.mk 

PORTS_SRCS-yes += bitops.h 
PORTS_SRCS-yes += mem.h 
PORTS_SRCS-yes += msvc.h 
PORTS_SRCS-yes += system_state.h 
PORTS_SRCS-yes += vpx_timer.h 

ifeq ($(ARCH_X86)$(ARCH_X86_64),yes) 
PORTS_SRCS-yes += emms.asm 
PORTS_SRCS-yes += x86.h 
PORTS_SRCS-yes += x86_abi_support.asm 
endif 

PORTS_SRCS-$(ARCH_ARM) += arm_cpudetect.c 
PORTS_SRCS-$(ARCH_ARM) += arm.h 

Diese wie eine Art von Make-Datei wizardry ich sieht, mit dem ich nicht vertraut bin. Es gibt keine anderen vpx_ports_ * -Dateien im Projekt. Es gibt mehrere andere .mk-Dateien im Projekt.

Cygwin wird empfohlen, und ich habe versucht, das statt Bash unter Windows zu verwenden, aber das gleiche Ergebnis erzielt. Letztendlich möchte ich den Fehler beheben und mit meinem Leben weitermachen. Jede Hilfe ist willkommen, egal ob es darum geht, den Linker-Bug zu lösen oder einen alternativen Build-Mechanismus vorzuschlagen.

[Edit 1]
Fortschritt: die Build-Skript benutzerdefinierte schafft jedoch Befehle für die asm-Dateien, wie

yasm -Xvc -g cv8 -f win64 -I"." -I".." "%(FullPath)" -o $(IntDir)vpx_ports_emms_asm.obj 

bauen, gibt -o das Ausgabeverzeichnis, nicht den Ausgabenamen-Datei (ungeachtet dessen, was die Dokumentation kann sagen), in der neuesten Version von Yasm; Die Datei wurde tatsächlich erfolgreich zu emms.obj zusammengestellt. Leider scheint es keine Option zu geben, den Ausgabedateinamen anzugeben.

+0

Ich habe es geschafft, es mit mingw64 + yasm 1.3 + msys 1.0 zu bauen. Auf Autotools basierende Build-Systeme sind in der Regel noch schlechter als bei der Erstellung von VS-Lösungen. – VTT

Antwort

0

Es stellt sich heraus, dass ich den falschen YASM installiert habe. Auf der webmproject-Site warnen die Build-Voraussetzungen davor, die integrierte VS-Version zu verwenden.

Verwandte Themen