01 必备软件
01.01 操作系统 win10。
01.02 安装 vs2013。
01.03 安装cmake。cmake官网:https://cmake.org/
https://cmake.org/files/v3.6/cmake-3.6.1-win64-x64.msi
01.04安装hg代码管理工具,下载x265源码。在环境变量PATH中加入C:\Program Files\Mercurial。
https://www.mercurial-scm.org/release/windows/Mercurial-3.9-x64.exe
01.05 x265官网:http://x265.org/
02 编译x265代码
02.01 x265 代码官网
https://bitbucket.org/multicoreware/x265/wiki/Home
02.02 x265源码下载:
cd d:\git\
hg clone https://bitbucket.org/multicoreware/x265
cd x265
hg tags # 找到最新tag是2.0
# 迁出最新稳定版本代码
hg co 2.0
02.03 下载vsyasm工具。
下载 http://www.tortall.net/projects/yasm/releases/vsyasm-1.3.0-win64.zip。 解压到 D:\git\x265\build\vsyasm-1.3.0-win64。
02.04 创建solutions文件。运行:
A:运行make-solutions.bat
cd d:\git\x265
build\vc-x86\make-solutions.bat
B:配置 YASM_EXECUTABLE
运行make-solutions.bat脚本后,出现cmake-gui界面。配置:YASM_EXECUTABLE=D:/git/x265/build/vsyasm-1.3.0-win64/vsyasm.exe
C:点击Configure 和Generate 生成vs2013工程文件。
02.05 编译x265.sln
使用vs2013打开 D:\git\x265\build\vc12-x86\x265.sln。编译,出现如下错误:
02.06 修改编译错误。
错误的原因是使用汇编器VSYASM对.asm源代码文件进行汇编后生成的obj文件名与链接时使用的文件名不对应:pixel-a.asm文件生成的文件名不是pixel-a.asm.obj,而是pixel-a.obj。
把 D:\git\x265\build\vc12-x86\x265-static.vcxproj 和 D:\git\x265\build\vc12-x86\x265-shared.vcxproj 里面的[.asm.obj] 修改为 [.obj]。
需要修改的文件名称如下:
pixel-a.asm.obj
const-a.asm.obj
cpu-a.asm.obj
ssd-a.asm.obj
mc-a.asm.obj
mc-a2.asm.obj
pixel-util8.asm.obj
blockcopy8.asm.obj
pixeladd8.asm.obj
dct8.asm.obj
sad-a.asm.obj
intrapred8.asm.obj
intrapred8_allangs.asm.obj
ipfilter8.asm.obj
loopfilter.asm.obj
pixel-32.asm.obj
如图所示:
02.07 编译x265
使用vs2013打开 D:\git\x265\build\vc12-x86\x265.sln。 编译。通过。