2009年3月25日星期三

CCS编译报错说明

首先,CCS并不支持全部的标准C,有些用法CCS不支持,导致出一些看似正确却编译报错的问题。
比如这个错误:"common.h", line 360: error: identifier "DECLARE_ALIGNED" is
undefined
1.它在VC下有一个宏定义,是:DECLARE_ALIGNED( type, var, n )
__declspec(align(n)) type
var,就是说将以type类型的变量var以n字节对齐,现在移植的时候先不考虑DSP的对齐方式(2字节),直接定义变量:如下
DECLARE_ALIGNED( int, chroma_dc[2][4], 16 );
int, chroma_dc[2][4],
1.1.将define DECLARE_ALIGNED( type, var, n ) type var
__attribute__((aligned(n)))直接放到每个文件的开头也能消除这个错误.但这句代码不是已经在X264.H中定义过了吗?为什么还要重复定义呢?
2.在CCS的BUILD OPERATION中设置PREPROCESS中添加:__X264_
此时在"DECLARE_ALIGNED" is undefined的位置处出现这样的错误line 1620:
error: expected a ";"
1.3.#ifdef __X264__
# ifdef _MSC_VER
# define inline __inline
# define DECLARE_ALIGNED( type, var, n ) __declspec(align(n)) type
var
# define strncasecmp(s1, s2, n) strnicmp(s1, s2, n)
# else
# define DECLARE_ALIGNED( type, var, n ) type var
__attribute__((aligned(n)))
# endif

没有评论: