2017-05-17 95 views
0

我在libvpx中发现了一个阻碍我在视频中使用alpha的bug。我已经修复了这个bug,但这意味着我必须重新构建libvpx(除了头文件和库之外,先前的构建会在时间的迷雾中丢失)。我已经获取的版本1.6.1,并按照说明这里https://github.com/webmproject/libvpx,生成在Windows 10使用猛砸此命令行中的Visual Studio 2015年解决方案:使用Bash在Windows 10上使用Visual Studio 2015构建libvpx

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

一切都看起来不错:我已经打开该解决方案在Visual工作室2015年,试图打造VPX项目,该项目已取得了许多目标文件和组装的组件来源,但最终我得到了以下错误:

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

没有与此名称的源文件,所以没有相应的obj文件。通过项目来看,有许多的.mk文件的其中之一的名称为vpx_ports,包含以下内容:

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 

这在我看来就像某种与我陌生的makefile巫术。项目中没有其他vpx_ports_ *文件。该项目中还有其他几个.mk文件。

Cygwin是推荐的,我试过在Windows上使用它而不是Bash,但是达到了相同的结果。最终,我想修复错误并继续我的生活。任何帮助都是值得欢迎的,无论是向我解释如何解决链接器错误或建议替代构建机制。

[编辑1]
进展:构建脚本创建自定义生成的ASM文件的命令,如

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

但是,-o指定输出目录,而不是输出文件名(尽管什么文档可能会说),在最新版本的yasm中;该文件确实已成功组装到emms.obj。可悲的是,似乎没有指定输出文件名的选项。

+0

我设法使用mingw64 + yasm 1.3 + msys 1.0来构建它。在生成VS解决方案时,基于Autotools的构建系统通常比cmake更差。 – VTT

回答

0

事实证明,我安装了错误的YASM。在webmproject站点上,构建先决条件警告不要使用VS集成版本。

相关问题