Mex генерирует ошибку для // при компиляции кода C в Linux
Я хочу скомпилировать код C в Ubuntu с помощьюmex
который настроен с GCC. Я могу плавно скомпилировать код в OSX. Однако, когда я хочу скомпилировать его в Linux, компилятор генерирует ошибку в строках комментария, начинающихся с//
(работает нормально с/* */
, Так как программа содержит несколько заголовочных файлов из сторонних библиотек, я не могу заменить//
с участием/* */
, Я хотел бы знать, есть ли способ обойти эту проблему.
Версия MATLAB: версия gcc R2012b в Linux: версия gcc 4.7.2 в OSX: 4.2.1
Любая помощь приветствуется
Редактировать: вот команда, которую я использую для компиляции кода:
mex -g -largeArrayDims -ldl TDSVDHNGateway.c
Вот ошибка, сгенерированная mex:
In file included from TDSVDHNGateway.c:2:0:
TDS.h:17:1: error: expected identifier or ‘(’ before ‘/’ token
TDS.h:26:2: error: unknown type name ‘index_t’
TDS.h:27:2: error: unknown type name ‘index_t’
In file included from TDSVDHNGateway.c:2:0:
TDS.h:146:3: error: unknown type name ‘index_t’
TDSVDHNGateway.c:37:3: error: unknown type name ‘index_t’
TDSVDHNGateway.c: In function ‘mexFunction’:
TDSVDHNGateway.c:166:25: error: ‘index_t’ undeclared (first use in this function)
TDSVDHNGateway.c:166:25: note: each undeclared identifier is reported only once for each function it appears in
Строка 17 в заголовочном файле:
//Defining index_t
typedef size_t index_t;
Если я заменю//Defining index_t
с участием/*Defining index_t*/
код будет скомпилирован без проблем.