vs2013编译ffmpeg之二十七 schroedinger

阅读: 评论:0

vs2013编译ffmpeg之二十七 schroedinger

vs2013编译ffmpeg之二十七 schroedinger

schroedinger

注:ffmpeg-3.4.2中去掉了对libschroedinger的支持。

schroedinger是VC-2的实现。

orc

schroedinger-1.0.11依赖于orc先编译orc-0.4.25,下载地址:/。解压后在orc-0.4.25目录下执行:

mkdir msys_build; ./configure --prefix=$(pwd)/msys_build; make; make install

编译的结果就在orc-0.4.25/ msys_build目录下。运行的时候需要将liborc-0.4-0.dll拷贝到同级目录下,schroedinger依赖于这个库。

编译schroedinger

从官网上下载schroedinger-1.0.,解压后在schroedinger-1.0.11目录下执行:

mkdir msys_build; export PKG_CONFIG_PATH=../orc-0.4.25/msys_build/lib/pkgconfig/; ./configure --prefix=$(pwd)/msys_build; make; make install

编译错误一

configure文件需要修改,不然编译会报下面的错误:

make[2]: Entering directory `/home/AA/ffmpeg_MSVC/contribute/MSVC/schroedinger-1.0.11/schroedinger'../orc-0.4.25/msys_build/  --inline --implementation -o tmp-orc.c ./ake[2]: ../orc-0.4.25/msys_build/: Command not foundmake[2]: *** [tmp-orc.c] Error 127make[2]: Leaving directory `/home/AA/ffmpeg_MSVC/contribute/MSVC/schroedinger-1.0.11/schroedinger'make[1]: *** [all-recursive] Error 1make[1]: Leaving directory `/home/AA/ffmpeg_MSVC/contribute/MSVC/schroedinger-1.0.11'make: *** [all] Error 2

出错的目录是schroedinger-1.0.11/schroedinger&#的路径不对,查orc的.pc文件orc-0.4.25msys_buildlibpkgconfigorc-0.4.pc,里面的路径是绝对路径:

prefix=/home/AA/ffmpeg_MSVC/contribute/MSVC/orc-0.4.25/msys_build

路径是正确的,可能是pkg-config的时候出的问题。从schroedinger-1.0.11/config.log找到检测ORC时的打印:

configure:16425: checking for ORCconfigure:16433: PKG_CONFIG --exists --print-errors "orc-0.4 >= ORC_VER"configure:16436: $? = 0configure:16451: PKG_CONFIG --exists --print-errors "orc-0.4 >= ORC_VER"configure:16454: $? = 0configure:16490: result: yes 

从configure的第16425行开始检测ORC,分别在16433、16451执行了pkg-config命令:

configure:16425: checking for ORCconfigure:16433: PKG_CONFIG --exists --print-errors "orc-0.4 >= ORC_VER"configure:16436: $? = 0configure:16451: PKG_CONFIG --exists --print-errors "orc-0.4 >= ORC_VER"

将这个pkg-config命令单独拿出来执行,$PKG_CONFIG就是pkg-config,ORC_VER在configure里面有定义,值为0.4.16,则单独的命令为:

export PKG_CONFIG_PATH=../orc-0.4.25/msys_build/lib/pkgconfig/; pkg-config --debug --exists --print-errors "orc-0.4 >= 0.4.16"

pkg-config要加--debug参数,不然没有打印。pkg-config的打印:

Reading 'orc-0.4' from file '../orc-0.4.25/msys_build/lib/pkgconfig/orc-0.4.pc'Parsing package file '../orc-0.4.25/msys_build/lib/pkgconfig/orc-0.4.pc'line>prefix=/home/AA/ffmpeg_MSVC/contribute/MSVC/orc-0.4.25/msys_buildVariable declaration, 'prefix' overridden with '../orc-0.4.25/msys_build'line>exec_prefix=${prefix}Variable declaration, 'exec_prefix' has value '../orc-0.4.25/msys_build'

从打印里面可以看出prefix变量被../orc-0.4.25/msys_build覆盖。所以路径都不正确了。上网搜了一下“Variable declaration, ‘prefix’ overridden with”,,pkg-config可以加参数--dont-define-prefix来指示不需要覆盖prefix变量。从schroedinger-1.0.11/Makefile里面可以看出,ORCC、ORC_CFLAGS、ORC_LIBS三个变量的值里面的路径被覆盖了。

在configure里面找到这三个变量赋值的地方,分别是:

ORCC=$PKG_CONFIG --variable=orcc orc-0.4pkg_cv_ORC_CFLAGS=$PKG_CONFIG --cflags "orc-0.4 >= $ORC_VER" 2>/dev/nullpkg_cv_ORC_LIBS=$PKG_CONFIG --libs "orc-0.4 >= $ORC_VER" 2>/dev/null

改成:

ORCC=$PKG_CONFIG --debug --dont-define-prefix --variable=orcc orc-0.4pkg_cv_ORC_CFLAGS=$PKG_CONFIG --debug --dont-define-prefix --cflags "orc-0.4 >= $ORC_VER" 2>/dev/nullpkg_cv_ORC_LIBS=$PKG_CONFIG --debug --dont-define-prefix --libs "orc-0.4 >= $ORC_VER" 2>/dev/null

重新configure再make就可以解决问题。prefix为何被覆盖,原因不清楚。

编译错误二

schroedinger-1.0.11编译到testsuite目录的时候会报错,缺_orc_code_orc_interleave2_s16、_orc_code_orc_deinterleave2_s16这两个符号,直接在wavelet_max_gain.c里面加上这两个符号的定义就可以解决:

OrcCode *_orc_code_orc_interleave2_s16;OrcCode *_orc_code_orc_deinterleave2_s16;

编译错误三

在编译ffmpeg-3.3的时候会报下面的错误:

libschroedingerenc.cC:Program Files (x86)Microsoft Visual Studio 12.0VCINCLUDEmath.h(515) : error C2059: 语法错误:“(”

这个是加了schroedinger后才出现的,math.h 515行是rint函数的定义,在schroedinger源代码下面直接搜索rint,发现rint已经有定义:

if defined(_MSC_VER)define rint(x) (floor((x) + 0.5))#endif

直接将其注释掉就可以了,并重新编译schroedinger。

本文发布于:2024-02-01 14:29:18,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170676895937258.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:二十七   ffmpeg   schroedinger
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23