1.首先下载该处的X264:
http://truth-tracer.appspot.com/x264-snapshot-20090216-2245.rar
作者已经对该版本的X264进行了一定的修改。具体修改内容可见:http://bbs.chinavideo.org/viewthread.php?tid=6945&highlight=VS2008
2。下载yasm
http://www.tortall.net/projects/yasm/wiki/Download
选择win32.exe.如果是VS2010则下载Win32 VS2010 .zip
解压后将.exe改名成yasm.exe,主要是方便工程里面yasm的设置
将.exe放在D:\Program Files\Microsoft Visual Studio 9.0\VC\bin,查找自己的相应目录
3。接下来需要下载自定义生成的模板(自己理解的)
VS2008,VS2005下载 yasm.rules http://www.tortall.net/svn/yasm/trunk/yasm/Mkfiles/vc9/yasm.rules
VS2010可直接使用除了EXE外三个文件
4。模板放到你的工程目录下,如C。。。。。。\x264-snapshot-20090216-2245\x264-snapshot-20090216-2245\build\win32
VS2010有个一劳永逸的办法,将那三个文件放到
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations下
5。打开工程,编译X264具体的思路是先编译生成libx264d.lib,然后将该lib添加到工程lib库,最后对x264进行编译后生成x264.exe
首先编译生成libx264d.lib.右击解决方案,选择自定义生成规则,选择查找现有的,然后在弹出对话框里选择放在该目录下的yasm.rules,如果你放在别的地方就同样的方式添加。
然后右击解决方案,在属性里可以看到刚才新加的yasm assemble,vs2010貌似没有显示,但不妨碍。具体的东西不用动,接着下一步。
接下来打开解决方案的x86目录,可以发现ASM都集中在这里.刚才已经修改了yasm名字的,这里可以不用多改,不过也可以按照接下来的步骤进行检修改:
将命令行里的yasm改成你放在bin目录下的exe的名字。
为啥编译器能自动调用YASM呢?
今天才知道原来是需要在工程设置里给每个asm文件指定编译选项的。
在solution explorer里选中某个asm文件,右键选择"properties"->"custom build step"->"command line"里可以看到其设置为
nasm -i $(InputDir) -f win32 -DPREFIX -o $(IntDir)\$(InputName).obj $(InputPath)或
yasm -I..\..\common\x86\ -f win32 -O2 -DPREFIX -o "$(IntDir)\$(InputName)".obj "$(InputPath)"
接下来对所有的asm文件进行属性修改,完了后编译就没有什么问题了。
6。编译完了libx264后,会在工程\bin目录下生成个libx264d.lib(因人而异),可以将它提取出来放到VC的lib库里,具体路径:D:\Program Files\Microsoft Visual Studio 9.0\VC\lib中
打开x264的工程。右击解决方案,选择属性,选择C++-->链接器
接下来解决方案,生成,是不是没有问题了。嘿嘿!
附下最后生成图: