最近在vs2008下读一个H264播放器的源代码,但是一直遇到一个编译问题,貌似是和对齐有关的,让我很困扰。
都是在
DECLARE_ALIGNED_8(int16_t, mv_cache[2][5*8][2]);
DECLARE_ALIGNED_8(int8_t, ref_cache[2][5*8]);
DECLARE_ALIGNED_16(DCTELEM, mb[16*24]);
这种地方报错,错误如下:
5>d:\visual studio 2008\vc\include\libavcodec\mpegvideo.h(436) : error C2059: 语法错误 : “常量”
5>d:\visual studio 2008\vc\include\libavcodec\mpegvideo.h(436) : warning C4183: “DECLARE_ALIGNED”: 缺少返回类型;假定为返回“int”的成员函数
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(282) : error C2059: 语法错误 : “常量”
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(282) : warning C4183: “DECLARE_ALIGNED”: 缺少返回类型;假定为返回“int”的成员函数
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(288) : error C2059: 语法错误 : “常量”
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(288) : error C2535: “int H264Context::DECLARE_ALIGNED(void)”: 已经定义或声明成员函数
5> d:\visual studio 2008\vc\include\libavcodec\h264.h(282) : 参见“H264Context::DECLARE_ALIGNED”的声明
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(288) : warning C4183: “DECLARE_ALIGNED”: 缺少返回类型;假定为返回“int”的成员函数
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(289) : error C2059: 语法错误 : “常量”
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(289) : error C2535: “int H264Context::DECLARE_ALIGNED(void)”: 已经定义或声明成员函数
5> d:\visual studio 2008\vc\include\libavcodec\h264.h(282) : 参见“H264Context::DECLARE_ALIGNED”的声明
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(289) : warning C4183: “DECLARE_ALIGNED”: 缺少返回类型;假定为返回“int”的成员函数
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(353) : error C2059: 语法错误 : “常量”
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(353) : error C2535: “int H264Context::DECLARE_ALIGNED(void)”: 已经定义或声明成员函数
5> d:\visual studio 2008\vc\include\libavcodec\h264.h(282) : 参见“H264Context::DECLARE_ALIGNED”的声明
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(353) : warning C4183: “DECLARE_ALIGNED”: 缺少返回类型;假定为返回“int”的成员函数
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(431) : error C2059: 语法错误 : “常量”
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(431) : error C2535: “int H264Context::DECLARE_ALIGNED(void)”: 已经定义或声明成员函数
5> d:\visual studio 2008\vc\include\libavcodec\h264.h(282) : 参见“H264Context::DECLARE_ALIGNED”的声明
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(431) : warning C4183: “DECLARE_ALIGNED”: 缺少返回类型;假定为返回“int”的成员函数
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(450) : error C2059: 语法错误 : “常量”
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(450) : error C2535: “int H264Context::DECLARE_ALIGNED(void)”: 已经定义或声明成员函数
5> d:\visual studio 2008\vc\include\libavcodec\h264.h(282) : 参见“H264Context::DECLARE_ALIGNED”的声明
5>d:\visual studio 2008\vc\include\libavcodec\h264.h(450) : warning C4183: “DECLARE_ALIGNED”: 缺少返回类型;假定为返回“int”的成员函数