由于现在的x264不支持VC工程,我们用以前的VC工程版本,还要用到yasm.
- 下载工程文件并解压,路径和文件夹名最好不要有中文(yasm编译汇编时可能会出错)
下载x264: http://download.csdn.net/detail/agent_x/9491982 - 下载yasm: http://www.tortall.net/projects/yasm/wiki/Download
- 解压文件
解压后将文件名都改名成yasm,主要是方便工程里面yasm的设置。将.exe放在$VSPathVCin下,查找自己的相应目录($VSpath为VS的安装路径) - 将除yasm.exe以外的三个文件放到x264的工程目录x264uildwin32下VS2013有个一劳永逸的办法,将那三个文件放到C:Program Files (x86)MSBuildMicrosoft.Cppv4.0v120BuildCustomizations下
- 编译libx264打开工程,首先编译生成libx264d.lib.右击解决方案->生成依赖项->生成自定义->在弹出的对话框里勾选yasm.exe->确定。
如果对话框里没有,可以选择查找现有的,然后在弹出对话框里选择放在该目录下的yasm.rules,如果你放在别的地方就同样的方式添加。 - 编译x264
编译完了libx264后,会在工程in目录下生成个libx264d.lib,可以将它提取出来放到VC的lib库里,具体路径:$VSPathVClib(因人而异)中打开x264的工程。
右击解决方案,选择属性->链接器->输入->附加依赖选项,将刚才添加的lib名添加到附加依赖选项(增加libx264.lib)。接下来右击解决方案,生成,是不是没有问题了。 - 运行看看。发现会报错,弹出窗口显示在.obj/x264_Debug 目录下找不到x264.exe文件。
这是因为生成的.exe程序的默认路径是在in目录下,修改一下输出路径就可以了。属性->链接器->输出文件 路径改为.obj/x264_Debugx264.exe
PS:修改x264源码,调试时把libx264的生成路径修改一下,不然程序在跑的时候使用的仍是以前生成的lib文件。右击libx264解决方案->属性->库管理器->输出文件,将路径修改成VC/lib路径下,这样每次用的都是最新生成的lib文件。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134103.htm