Mex gera erro para // enquanto compila o código C no Linux
Eu quero compilar um código em C no Ubuntu usandomex
que está configurado com o gcc. Eu posso facilmente compilar o código no OSX. No entanto, quando eu quero compilá-lo no Linux, o compilador gera o erro nas linhas de comentário começando com//
(funciona bem com/* */
. Como o programa inclui vários arquivos de cabeçalho de bibliotecas de terceiros, não posso substituir//
com/* */
. Eu gostaria de saber se existe alguma maneira de superar esse problema.
Versão do MATLAB: R2012b versão gcc no Linux: versão 4.7.2 gcc no OSX: 4.2.1
Qualquer ajuda é apreciada
Edit: Aqui está o comando que eu uso para compilar o código:
mex -g -largeArrayDims -ldl TDSVDHNGateway.c
Aqui está o erro gerado pelo 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
A linha 17 no arquivo de cabeçalho é:
//Defining index_t
typedef size_t index_t;
Se eu substituir//Defining index_t
com/*Defining index_t*/
o código será compilado sem problemas.