Mex generuje błąd // podczas kompilacji kodu C w Linuksie
Chcę skompilować kod C w ubuntu za pomocąmex
który jest skonfigurowany z gcc. Mogę płynnie skompilować kod w OSX. Jednak, gdy chcę skompilować go w Linuksie, kompilator generuje błąd w wierszach komentarzy zaczynających się od//
(działa dobrze z/* */
. Ponieważ program zawiera kilka plików nagłówkowych z bibliotek innych firm, nie mogę go zastąpić//
z/* */
. Chciałbym wiedzieć, czy jest jakiś sposób na rozwiązanie tego problemu.
Wersja MATLAB: R2012b wersja gcc w Linuksie: 4.7.2 wersja gcc w OSX: 4.2.1
Każda pomoc jest doceniana
Edytuj: Oto polecenie, którego używam do skompilowania kodu:
mex -g -largeArrayDims -ldl TDSVDHNGateway.c
Oto błąd generowany przez 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
Linia 17 w pliku nagłówkowym to:
//Defining index_t
typedef size_t index_t;
Jeśli wymienię//Defining index_t
z/*Defining index_t*/
kod zostanie skompilowany bez problemu.