libx264在VS2013中编译

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hiwubihe/article/details/81486687

libx264最新版本已经没有VS工程了,下载以前版本有VS工程,可以编译成功。libx264里面有部分汇编代码,采用的编译器是YASM,所以首先要把YASM集成到VS2013中。下面记录一下编译中遇到的问题。编译环境VS2013&&WIN10。

1.卸载系统中YASM。搜索系统中的yasm.exe,yasm.props,yasm.xml,yasm.targetsvsyasm.exe,vsyasm.props,vsyasm.xml.vsyasm.targets。VS2013中一般yasm.exe安装在C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin,配置文件在目录中C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations。

2.下载YASM,地址:http://www.tortall.net/projects/yasm/wiki/Download 安装32位即可。

3.安装YASM。解压安装包,把yasm.exe复制到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin,配置文件复制到目录C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations。

4.下载libx264库。http://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20091006-2245.tar.bz2。

5.解压x264-snapshot-20091006-2245.tar.bz,用VS2013打开。

6.libx264项目,需要编译汇编,设置汇编工具为YASM。

7.可以查看每一个asm文件,看看是否编译到工程中,已经使用的编译工具。

8.编译libx264工程,生成成功。

9.编译x264工程,报错,因为是日志,我直接把这行注释掉的。

10.编译报错,找不到x264_lookahead_init等函数。这种情况看错误说明是libx264.lib库里面没有找到定义,而libx264.lib库中,这个函数可能定义在.c文件,也可能定义在.asm文件中。可以用xsearch.exe工具搜索文件内容,发现有两个.c文件有引用这个函数,打开lookahead.c找到这个函数的定义,说明库工程编译时,把这个.c文件忘记加入了,可能是VS工程更新滞后的原因,把文件加上,然后编译。

 11.两个工程重新编译,编译成功。

猜你喜欢

转载自blog.csdn.net/hiwubihe/article/details/81486687