1. 下载mkvtoolnix-4.6.0.tar.bz2,解压到目录mkvtoolnix-4.6.0;
2. 进入mkvtoolnix-4.6.0目录,找到mkvtoolnix.sln,使用VS2008打开;
3. 编译生成解决方案;(需要先生成依赖的静态库,见附录二)
问题1:无法打开包括文件:“config.h”: No such file or directory
解决:将mkvtoolnix-4.6.0\config.h.in拷贝一份到mkvtoolnix-4.6.0\src\common目录下,并改名config.h
问题2:无法打开包括文件:“ebml/c/libebml_t.h”: No such file or directory
解决:将mkvtoolnix-4.6.0\lib\libebml目录添加到包含目录中
问题3:无法打开包括文件:“matroska/*.h”: No such file or directory
解决:将mkvtoolnix-4.6.0\lib\libmatroska目录添加到包含目录
问题4:无法打开包括文件:“ogg/ogg.h”: No such file or directory
解决:下载libogg-1.3.0解压到mkvtoolnix-4.6.0\lib\libogg-1.3.0,然后将mkvtoolnix-4.6.0\lib\libogg-1.3.0\include目录添加到包含目录
问题5:无法打开包括文件:“vorbis/codec.h”: No such file or directory
解决:下载libvorbis-1.3.2解压到mkvtoolnix-4.6.0\lib\libvorbis-1.3.2,然后将mkvtoolnix-4.6.0\lib\libvorbis-1.3.2\include目录添加到包含目录
问题6:error C2065: “VERSION”: 未声明的标识符
解决:在mkvtoolnix-4.6.0\src\common\config.h文件末尾添加#defineVERSION ("0.6.10")
问题7: fatal error LNK1181: 无法打开输入文件“common.lib”
解决:添加项目依赖关系,使common项目先生成。或者对项目分别进行编译。(到mkvtoolnix-4.6.0\winbuild目录下打开common.vcproj进行编译)
问题8:fatal error LNK1181: 无法打开输入文件“libebml.lib”
解决:进入mkvtoolnix-4.6.0\lib\libmatroska\make\vc7目录,打开libebml和libmatroska工程进行编译。将Release的libebml.lib和libmatroska.lib拷贝到mkvtoolnix-4.6.0输出目录。
问题9:error C2061: 语法错误:标识符“int64_t”
解决:将int64_t替换为__int64。
4. 生成解决方案成功。
附录一:包含目录
附录二:依赖库
common.lib
libebml.lib
libexpat.lib
libvorbis_static.lib
libvorbisfile_static.lib
zlibd.lib
libmatroska.lib
avi.lib
input.lib
mpegparser.lib
rmff.lib
libogg_static.lib
Rpcrt4.lib
<boost生成的lib库>