登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: windows下编译 ffmpeg源码生成静态库用于Dev-C++工程[zt] -- 如何在 msys2 中使用硬盘其他文件     [回主站]     [分站链接]
windows下编译 ffmpeg源码生成静态库用于Dev-C++工程[zt] -- 如何在 msys2 中使用硬盘其他文件
clq
浏览(337) - 2020-12-06 20:34:31 发表 编辑

关键字:

windows下编译 ffmpeg源码生成静态库用于Dev-C++工程[zt] -- 如何在 msys2 中使用硬盘其他文件

https://blog.csdn.net/cyz_2014/article/details/83052345

相关的文章很多,这篇的价值在于使用 fstab 文件,指定映射路径 在 msys2 中使用硬盘其他文件

----------------------------------------------------------------

windows下编译 ffmpeg源码生成静态库用于Dev-C++工程
二十二三年 2018-10-14 23:32:23 2047 收藏 1
文章标签: FFmpeg Dev-c MinGW muxing.c libavformat.a
版权



1 set-Up

1.1.下载ffmpeg源码ffmpeg-4.0.2.tar.bz2,http://ffmpeg.org/download.html 解压到 D:\04_project\ffmpeg\ffmpeg-4.0.2

1.2下载mingw 安装程序

mingw-get-setup.exe https://osdn.net/projects/mingw/releases/,

默认安装到C:\MinGW

mingw安装管理器可用于安装和管理mingw和msys,但是这个版本的mingw不是我们编译ffmpeg所需要的。mingw安装管理器仅仅用来安装msys。

把msys1.0的所有bin文件都安装一遍,如grep,iconv等。

1.3 解决pr和yasm命令没有找到以及pkg-confg没有找到

1.3.1 pr

pr command not found

下载地址 https://sourceforge.net/projects/gnuwin32/

安装后从bin目录复制pr.exe,libiconv2.dll,libintl3.dll到C:\MinGW\msys\1.0\bin

1.3.2 yasm

Yasm command not found http://yasm.tortall.net/Download.html,

将下载到的exe程序重命名为yasm.exe,复制到C:\MinGW\msys\1.0\bin

1.3.3 pkg-config

pkg-config依赖glib和gettext-runtime

下载如下三个包glib, pkg-config, pkg-config-dev 解压后将其中的exe和.dll全部拷贝到 to C:\MinGW\msys\1.0\bin

http://win32builder.gnome.org/packages/3.6/glib_2.34.3-1_win32.zip

http://win32builder.gnome.org/packages/3.6/pkg-config_0.28-1_win32.zip

http://win32builder.gnome.org/packages/3.6/pkg-config-dev_0.28-1_win32.zip

1.4下载MinGW-w64

下载文件:i686-8.1.0-release-posix-dwarf-rt_v6-rev0,下载地址: https://sourceforge.net/projects/mingw-w64/files/



1.5.将MinGW-w64与msys关联起来,MinGW-w64安装目录是:D:\01_tools\mingw-w64\i686-8.1.0-release-posix-dwarf-rt_v6-rev0\mingw32

在C:\MinGW\msys\1.0\etc中使用notepad++打开fstab文件,在其中添加唯一一条映射:

D:\/01_tools\/mingw-w64\/i686-8.1.0-release-posix-dwarf-rt_v6-rev0\/mingw32 /mingw

注意:windows中要加上反斜杠。

2 使用msys和MinGW-w64编译ffmpeg,生成.a的静态库,头文件以及bin文件

从C:\MinGW\msys\1.0\中打开msys.bat进入msys终端;

cd d:

cd 04_project/ffmpeg/ffmpeg-4.0.2/ffmpeg-4.0.2

./configure --prefix=/d/01_tools/mingw-w64/i686-8.1.0-release-posix-dwarf-rt_v6-rev0/mingw32/i686-w64-mingw32

其中prefix的值是MinGW-64安装目录中的i686-w64-mingw32。在1.1中下载解压出来的ffmpeg-4.0.2源码目录中执行configure

make

make install

lib中得到静态库和pkgconfig:

include中得到头文件

3 在dev-c++中使用ffmpeg的静态库

我们编译ffmpeg提供的example中的muxing.c

3.1 创建工程

a. 新建一个控制台c程序工程

b. 在工具->编译器选项中新建一个编译器new1

编译example用到的编译器是我们编译ffmpeg所使用的编译器 D:\01_tools\mingw-w64\i686-8.1.0-release-posix-dwarf-rt_v6-rev0\mingw32

如下是编译器的配置:





c 配置项目属性

打开项目->项目属性,在参数->链接中填入一下静态库:

-lavformat

-lavcodec

-lswresample

-lavutil

-lswscale

-pthread

-lm

-lz

-lsecur32

-lws2_32

-liconv

-lole32

-luser32

-lbcrypt

到目前为止,我们缺少两个库

libconv.a和libz.a

d 编译 libconv.a

下载libconv的源码

https://ftp.gnu.org/pub/gnu/libiconv/

下载libiconv-1.15

将下载的源码目录复制到mysy的home目录中,例如C:\MinGW\msys\1.0\home\cheny,“cheny”是当前用户。

在msys终端中执行如下命令:

./configure --prefix=/c/MinGW/msys/1.0/lib/libconv

make

make install

将编译好的库和头文件目录添加到项目属性的文件/目录中。



e 编译libz.a

下载源码地址:http://gnuwin32.sourceforge.net/packages/zlib.htm

复制zlib-1.2.3目录到C:\MinGW\msys\1.0\home\cheny

cd到zlib-1.2.3,执行如下命令:

cp win32/Makefile.gcc .

make -f Makefile.gcc

export "INCLUDE_PATH=/c/MinGW/msys/1.0/lib/zlib/include"

export "LIBRARY_PATH=/c/MinGW/msys/1.0/lib/zlib/lib"

export "BINARY_PATH=/c/MinGW/msys/1.0/lib/zlib/bin"

make install -f makefile.gcc

将编译好的库和头文件目录添加到项目属性的文件/目录中。



f 编译工程

成功得到exe程序,在不需要avcodec-58.dll/avfilter-7.dll/avdevice-58.dll/avformat-58.dll/avutil-56.dll等动态链接库的情况下也可以运行程序。




总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录
ffmpeg 更多
msys2 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1