系统相关
首页 > 系统相关> > windows ffmpeg2.8 动态库和静态库32位编译(hx264,opus)

windows ffmpeg2.8 动态库和静态库32位编译(hx264,opus)

作者:互联网

环境

所有库都是在 msys 中 进行32位编译

msys环境安装

修改 msys 程序目录的 msys2_shell.cmd

rem set MSYS2_PATH_TYPE=inherit 
改为
set MSYS2_PATH_TYPE=inherit

vs Command Prompt 中 打开 msys 继承 x86(x64) vs 的环境变量,

msys 可以使用 cl 编译器,使用对应x86(x64)下的系统依赖库

vsx86 Native Tools Command Prompt for 2019 中输入

msys2_shell.cmd -mingw32 启动 msys

64位 就打开 x64Command Prompt ,和 -mingw64

**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.11.17
** Copyright (c) 2021 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x86'

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>msys2_shell.cmd -mingw32

opus-1.3.1

根据github的描述,

To build from a distribution tarball, you only need to do the following:

    % ./configure
    % make

To build from the git repository, the following steps are necessary:

0) Set up a development environment:

1) Clone the repository:

    % git clone https://gitlab.xiph.org/xiph/opus.git
    % cd opus

2) Compiling the source

    % ./autogen.sh
    % ./configure
    % make

直接在官网下载压缩包opus-1.3.1.tar.gz进行编译可以少一步

CC=cl ./configure --prefix=`pwd`/build --disable-rtcd
--enable-shared (--enable-static) --disable-asm --disable-rtcd 
make -j8 && make install

指定 --prefix= 可以在make install 的时候把头文件,库和相关文档放到指定路径里面

--disable-asm 纯c实现,不使用针对汇编代码

--disable--rtcd 关闭运行时CPU能力检测,按字面意思理解是少了一个进程或者线程一直检测cpu

x264

git clone http://git.videolan.org/git/x264.git
./configure --disable-asm --enable-static --disable-cli --enable-debug --prefix=`pwd`/build --host=mingw32

静态库后缀是.a,直接加载即可

动态库可以通过vs工具把动态库的.a转为windows.lib

CC=cl \
./configure --disable-asm --enable-shared --enable-static  --disable-cli --enable-debug --prefix=`pwd`/build

编译出来的静态库动态库windows的lib和dll

make -j8 && make install

ffmpeg SDK编译

编译ffmpeg常见问题

编译失败查看 ffmpeg 目录下的config.log,看最后的报错

编译时要使用 -MD 编译,使用 -MT 会有以下错误

LINK : error LNK2001: 无法解析的外部符号 _mainCRTStartup

找不到cl.exe 或者系统.lib一般都是没有从 Native Tools Command Prompt 中打开,例如

cl not found
找不到 msvcrt.lib
找不到 kernel32.lib

windows 使用 ffmpeg 常见问题

标签:enable,lib,编译,windows,32,make,ffmpeg2.8,--,disable
来源: https://www.cnblogs.com/blackTree/p/16548757.html