Я пытаюсь выполнить файл .cc в mex, и я использую команду mex filename в Matlab. Мой компилятор [1] Lcc-win32 C 2.4.1 в C: \ PROGRA ~ 1 \ MATLAB \ R2012b \ sys \ lcc.с ошибками при компиляции файла .cc в mex в Matlab
Однако, есть некоторые ошибки:
lcc preprocessor error: learn.cc:5 Could not find include file <sys/time.h>
Error learn.cc: 70 illegal statement termination
Error learn.cc: 70 skipping `int'
Error learn.cc: 70 undeclared identifier `alen'
Error learn.cc: 71 illegal statement termination
Error learn.cc: 71 skipping `int'
Error learn.cc: 71 undeclared identifier `blen'
Error learn.cc: 87 invalid struct field declarations
Error learn.cc: 87 syntax error; found `collapsed' expecting `}'
Error learn.cc: 87 skipping `collapsed' `*' `x'
Error learn.cc: 93 unrecognized declaration
Warning learn.cc: 93 empty declaration
Error learn.cc: 97 undefined size for `incomplete struct timeval defined at learn.cc 97 tp'
Error learn.cc: 99 unknown field `tv_usec' of `incomplete struct timeval defined at learn.cc 97'
Error learn.cc: 102 syntax error; found `double' expecting `;'
Error learn.cc: 103 syntax error; found `double' expecting `;'
Error learn.cc: 106 missing parameter type
Error learn.cc: 106 syntax error; found `X' expecting `)'
Error learn.cc: 106 skipping `X' `,'
Error learn.cc: 106 syntax error; found `double' expecting `{'
Error learn.cc: 106 missing identifier
Error learn.cc: 106 too many errors
Я предполагаю, что причина первой ошибки в том, что нет time.h файла в папке SYS. Вместо этого есть файл timeb.h. Но я не знаю причины следующих ошибок.
Вот некоторые относительные коды:
line 70 int alen = **((int **)a);
line 71 int blen = **((int **)b);
line 86-93 struct data {
collapsed *x;
int num;
int numblocks;
int *blocksizes;
float *regmult;
float *learnmult;
};
line 96-100 void seed_time() {
struct timeval tp;
check(gettimeofday(&tp, NULL) == 0);
srand48((long)tp.tv_usec);
}
line 102 static inline double min(double x, double y) { return (x <= y ? x : y); }
line 103 static inline double max(double x, double y) { return (x <= y ? y : x); }
Может кто-нибудь дать мне подсказку?
'sys/time.h' в не-портативном файле заголовка Unix/Linux, недоступном для Windows ... Вероятно, остальная часть ошибки вызваны неопределенными типами из этого файла заголовка. – Amro
вы можете посмотреть на использование компиляторов Cygwin/MinGW GCC на Windows, но это совершенно другая история :) – Amro