Я занимаюсь разработкой приложения для iPhone, которое использует 3 проекта. Один проект разработан с использованием комбинации кода на c и c ++, а другой - на Objective C, а один - связать оба проекта (Objective-C и C и C ++).
Теперь, когда я компилирую свой проект C и C ++ в компиляторе GCC, он компилируется идеально, но когда я компилирую тот же проект с компилятором LLVM-GCC, выдается ошибка «Элемент Initilizer не является константой».
#define MY_WSD const
struct FuncDef {
i8 nArg;
u8 iPrefEnc;
u8 needCollSeq;
u8 flags;
void *pUserData;
FuncDef *pNext;
char *zName;
FuncDef *pHash;
};
typedef struct FuncDef FuncDef;
#define FUNCTION(zName, nArg, iArg, bNC, xFunc) \
{nArg, SQLITE_UTF8, bNC, 0, SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, #zName}
Вот код, ответственный за ошибку:
void myDateTimeFunctions(void){
static MY_WSD FuncDef aDateTimeFuncs[] = {
FUNCTION(julianday, -1, 0, 0, juliandayFunc ), //when I compile the code with LLVM GCC it's giving me error
//at this line and the later line and working fine with GCC
//alone compiler. But the problem is XCode 4.2 does not come
//with GCC alone compiler, so I am unable to run the applciation.
FUNCTION(date, -1, 0, 0, dateFunc ),
};
Пожалуйста, дайте мне знать, если мне не хватает ценной информации для исправления ошибки.