VS2015编译ffmpeg 3.4.2报错“slib”: 未声明的标识符

转自https://blog.csdn.net/jacke121/article/details/79889077

https://blog.csdn.net/bobsweetie/article/details/50858358

https://blog.csdn.net/csdnwei/article/details/72628162

https://blog.csdn.net/uselym/article/details/78040225?locationNum=3&fps=1

VS2015编译ffmpeg 3.4.2

界面组件用的:mintty

http://www.codelive.cn/index.php/archives/70/

https://www.cnblogs.com/CoderTian/p/7702731.html

使用VS2015编译ffmpeg 3.4.2的过程记录。

1.下载安装MSYS2,pacman可以省略,执行后面的直接安装组件

 
  1. http://www.msys2.org/

  2. pacman -Syu

  3. pacman -Su

2.安装必须的组件

pacman -S git gcc make diffutils nasm yasm tar pkg-config

3.下载ffmpeg 3.4.2

wget http://ffmpeg.org/releases/ffmpeg-3.4.2.tar.bz2

 

下载后路径:D:\msys64\home\sbdya

4.解压:

 
  1. bzip2 -d ffmpeg-3.4.2.tar.bz2

  2. tar -xvf ffmpeg-3.4.2.tar

5.改名msys2下的link.exe,防止和VS2015的link.exe冲突

mv /bin/link.exe /bin/link_bak.exe

6.在开始菜单中运行 VS2015 x64 Native Tools Command Prompt

7.在控制台中运行:

d:\msys64\msys2_shell.cmd -mingw64 -msys -use-full-path

 

检查编译组件:

which cl link yasm cpp

#显示如下内容

/c/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/amd64/cl

/c/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/amd64/link

/usr/bin/yasm

/usr/bin/cpp

 

04.04 修改msys2窗口代码页为GBK,避免编译时显示乱码。
在窗口上右击鼠标,选择[Options]菜单,选择[Text],locale选择:zh_CN,Character set 选择 GBK。 

 

这里写图片描述

 

 

8.开始编译ffmpeg

cd ffmpeg-3.4.2/

./configure --toolchain=msvc --enable-shared --disable-static --disable-debug --prefix=./out/

make -j4 && make install

 

./configure --toolchain=msvc --enable-shared --disable-static --enable-encoder=libx264 --enable-encoder=mjpeg --enable-encoder=mpeg4 --enable-gpl --disable-debug --enable-x86asm\

--enable-libx264 --extra-cflags=-I/home/x264-bin/include --extra-ldflags=-LIBPATH:/home/x264-bin/lib --prefix=./out/

 

编译成功,在out目录下面;

 

其中的报错:

1.c++ 常量中有换行符

 

fftools/ffprobe.c(3047): error C2001: 常量中有换行符

我就把这一行ffprobe.c的3047行打印字符给注释了,两处代码:

//av_log(NULL, level, "%sbuilt with %s\n", indent, CC_IDENT);

//print_str("compiler_ident", CC_IDENT);

还有如下报错:也是因为CC_IDENT引起的,解决方法就是上面注释

fftools/cmdutils.c(1119): error C2065: “slib”: 未声明的标识符
fftools/cmdutils.c(1119): error C2296: “%”: 非法,左操作数包含“char [138]”类型
fftools/cmdutils.c(1119): error C2059: 语法错误:“数字上的错误后缀”
fftools/cmdutils.c(1119): error C2059: 语法错误:“%”
fftools/cmdutils.c(1119): error C2017: 非法的转义序列
fftools/cmdutils.c(1119): error C2001: 常量中有换行符
fftools/cmdutils.c(1150): error C2143: 语法错误: 缺少“)”(在“*”的前面)
fftools/cmdutils.c(1150): error C2143: 语法错误: 缺少“{”(在“*”的前面)
fftools/cmdutils.c(1150): error C2059: 语法错误:“)”
fftools/cmdutils.c(1151): error C2054: 在“options”之后应输入“(”
fftools/cmdutils.c(1252): error C2143: 语法错误: 缺少“)”(在“*”的前面)
fftools/cmdutils.c(1252): error C2143: 语法错误: 缺少“{”(在“*”的前面)
fftools/cmdutils.c(1252): error C2059: 语法错误:“)”
fftools/cmdutils.c(1253): error C2054: 在“avclass”之后应输入“(”
fftools/cmdutils.c(1261): error C2275: “AVInputFormat”: 将此类型用作表达式非法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值