2016-12-28 122 views
1

真正的答案可能是“不”,但仍然只是为了仔细检查。 有没有人能够在Windows(VS2013或VS2015)上构建ffmpeg x64?我知道,如果没有大量修改,公开可用的资源是不可能的。然而,如果有人这样做,并且他愿意分享一些技巧...是否可以在Windows上构建ffmpeg x64?

编辑: 有趣的是,运行“配置”所需的大多数x64工具是如何在没有依赖关系的情况下分发的,而且这是不可能的让他们在任何地方。看起来像一个专业的拖钓。

EDIT2: 有数以千计的错误是这样的:

fatal error C1083: Cannot open include file: 'features.h': No such file or directory 

features.h缺少许多其他的头文件。有没有解决这个问题,或者切换到Linux是唯一的选择?

+0

需要VS吗?我使用这个脚本在Windows上编译ffmpeg:https://github.com/jb-alvarado/media-autobuild_suite – Mulvya

+0

它是,它不是。我的意思是,我将不得不调试它,所以VS会很好,因为如果我用MinGW构建它,那么我将不得不使用Eclipse进行调试(这很糟糕),因为VS不适用于矮人格式。 – moose

回答

0

不,不能这样做。 MS编译器不支持#include_next。另外,还有很多其他问题......你需要MinGW。

1

使用x64假设你指的是标准的64位版本,是有可能。有关FFmpeg的所有测试版本,请参阅fate页面,该列表中包含各种32位和64位版本的Visual Studio,其中包括VS2013和VS2015 64位。搜索 “微软(R)C/C++优化编译器版本18.00.40629针对x64”(或 “19.00.24215.1”)或 “VS2013”​​/ “VS2015”,所有在底部的方式。有关确切的版本选项,请参见此处的2013或此处的2015。最重要的部分是在你的$PATH打开与64位的命令行编译工具Windows外壳程序,并从那里打开MSYS壳,然后使用--arch=x86_64 --target-os=win64 --toolchain=msvc选项运行configure。有关更多详细信息,请参阅MSVC编译wiki页面。

+0

这到底会如何帮助我?我知道传说说这是可能的,但是这个URL只报告构建结果。有一件事让我认为它是假的是x64的配置日志。它说:ARCH x86(通用) – moose

+0

顺便说一下,该wiki页面是完全错误的。 – moose

+0

仅使用arch,target-os和toolchain运行configure甚至不够接近。您需要提供编译器开关和预处理器指令。也有一些Linux只能得到编译的资源,因为它们没有针对各种平台的预处理器指令。另外,pkg-config丢失等等。最重要的部分丢失了。 – moose

0

有一个如何,对FFmpeg的页面itself.It并没有为我工作,到目前为止,但至少你应该摆脱C99误差等。

https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC

也许你尝试安装这个东西(我不得不seperatly下载pkg配置与Msys2,它的工作),并按照这些步骤。

+0

你说到目前为止它不适合你。如果我遵循相同的程序,为什么你认为这对我有用? – moose

+0

这是一个环境问题,至少从我猜测开始。所以,也许你比我聪明,并找出它;) 你试图建立它有多远? – Earinor

+0

不记得所有的细节。那是去年的十二月。它从解决当时的一个问题开始,但是每一个解决的问题都会带来一些新的问题,所以它会变成无尽的补丁。用MinGW来构建它可能会更好。它仍然需要一些修复,但至少在合理的时间内有可能赢得战斗。坏的一面是你无法通过VS调试它。 VS无法使用DWARF格式。 – moose

0

我用来编译Linux机器使用MinGW对ffmpeg的,但现在我能到Windows 10

注意编译Windows机器上,在我的情况: 对于我来说只是工作的ffmpeg的版本> = 3.0和我使用VS 2013和2015年

仅有几步之遥,但很重要的测试:

下载并安装(除YASM):

  • 的Visual Studio 2013或2015
  • MSYS2

步骤:

  1. 安装MSYS2到固定夹(例如。:C:\开发\ msys64)
  2. 运行msys2.exe
  3. 执行命令 “吃豆子-S让GCC diffutils的”,按 “Y” 安装
  4. 关闭msys2
  5. 重命名C:\开发\ msys64 \ usr \ bin \ link.exe改名为“msys2_link.exe”
  6. 将“ C:\ Dev“环境变量PATH
  7. 运行VS2013/2015 x86(用于x86)或x64用于(x64)命令提示符
  8. 执行“C:\开发\ msys64 \ msys2_shell.cmd -msys次使用的全路径”
  9. 在msys2窗口中执行“这CL”,你会看到你的VS的路径
  10. 执行“的链接“你也应该看到你的VS
  11. 围棋的路径ffmpeg的源路径(例如: ”CD /c/ffmpeg3.3“)
  12. 运行./configure和make

我使用这种配置:

./configure \ 
    --toolchain=msvc \ 
    --arch=x86_64 \ 
    --enable-yasm \ 
    --enable-asm\ 
    --enable-shared \ 
    --enable-w32threads \ 
    --disable-programs \ 
    --disable-ffserver \ 
    --disable-doc \ 
    --disable-static \ 
    --prefix=/c/ffmpeg3.3/DLLS 

NOTE2: 如果您使用的最后一行前缀=/C/ffmpeg3.3/DLLS,作为最后一步,运行make安装和二进制文件将被复制到该路径

希望它有帮助。

祝你好运

相关问题