windows 您所在的位置:网站首页 ffmpeg编译成一个dll windows

windows

#windows| 来源: 网络整理| 查看: 265

我正在尝试在 VS2010 上的 C++ 项目中使用 ffmpeg,而 ffmpeg dev 版本提供了 .h 文件的库。我在我的项目中链接了这些 .libs,运行 .exe 文件时需要相应的 .dll。但我想静态链接 ffmpeg 库并在没有 .dll 的情况下运行。

我尝试在 Windows 上使用 Mingw 编译 ffmpeg 源代码,结果只生成了一些 .a 存档文件。如何获取 ffmpeg 静态 .lib 文件?而且它是一个 64 位程序,因此需要 64 位静态库。

最佳答案

在您的输出目录中,您有一些*.def 文件。您可以使用这些文件来获取您的 *.lib 文件。语法是:

lib /def:avcodec-54.def /out:avcodec-54.lib

使用你的 VS 版本的 lib.exe。我的位于 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin。检查命令行选项(添加 /machine:i386 很有用)。

另一种方法:不要直接使用windows的cmd来启动msys/mingw,而是先启动VS命令提示符(您可以从开始菜单启动它)。它将设置一些环境变量。从这里开始,使用 msys/mingw 编译 FFmpeg:FFmpeg 构建将自动检测 VS 是否存在,因此将自动执行 lib 调用。

编辑:抱歉,我跳过了问题的“静态”部分。这里有一些关于静态构建的技巧(请注意,我从未构建过在 visual studio 中使用的静态 FFmpeg,所以它可能不起作用)。 首先,当然,FFmpeg 必须使用静态选项构建:只是为了确定,我使用这些选项,所以我没有共享文件的 .def:

./configure --enable-static --disable-shared [other options]

为了拥有静态文件,您可以直接使用 .a 文件(同样:我从未尝试过)。检查this question .

如果不行,你可以试试visual studio toochain而不是gcc。但要小心:上次我尝试这个(但共享 dll)时,从 msvc 构建时 FFmpeg 解码比 gcc 的输出慢。检查this page获取详细的构建说明。

关于windows - 在 Visual Studio 中静态链接 ffmpeg 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25959685/



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有