下载xvidcore-1.3.2后,去build\win32打开vs2005的sln,编译libxvidcore时发现有几个问题:

找不到nasm,要下载nasm解压,在环境变量里加入解压后的路径或者在VC++ Directories添加改路径,再次编译,发现卡在几个asm文件上,colorspace_yuyv_mmx.asm,colorspace_yuyv_yuv.asm,colorspace_rgb_mmx.asm,需要将Custom Build里的$(InputDir)两边的双引号去掉。

再次编译出现xvid_plugin_psnrhvsm链接不上的问题,原来是没有包含plugin_psnrhvsm.c文件,在plugins子项里加上它,编译成功。

再编译xvid_decraw,成功。

编译xvid_encraw,报两个错误,一个说"You are trying to compile Xvid without defining address bus size.",在属性的c/c++的预处理定义里加上ARCH_IS_32BIT;ARCH_IS_IA32后即可。另一个错误说COINIT_MULTITHREADED找不到,在objbase.h中,被windows.h包含,受_WIN32_WINNT控制,添加一行:

#define _WIN32_WINNT 0x0501

#include <windows.h>之前,我实在XP下编译的,所以是0x0501。

到这里编译,一切OK