Bonjour,
je rencontre de grosses difficultés à compiler des MEX files.
Toutes les configurations de bases marchent, en particulier le "Hello World" fonctionne sans problème (j'ai crée un MEX file affichant "Hello World", j'ai réussi à le compiler sans difficulté et l'appel de la fonction sous-jacente sous MATLAB résulte par l'affichage de "Hello World")
Mon problème est plus poussé :
j'ai un projet conséquent en C, plus de 10 000 lignes. Ce projet compile et fonctionne parfaitement.
J'aurais souhaité pouvoir lier ce projet à MATLAB (pour des raisons qu'ils seraient trop long de détailler ici).
J'ai donc écrit un Mex file dans lequel j'appelle une des fonctions de mon projet (elle s'appelle zigzag)
Au moment de la compilation, plus d'une centaine d'erreurs apparaissent alors que mon projet initial fonctionne et aucune erreur ne vient du fichier MEX à proprement parlé (ici ZZ.c) .
Le compilateur n'a pas l'air d’apprécier les conventions utilisé dans mon projet, parmi lesquels :
- le standard c99
- le fait de faire des déclaration un peu partout dans le fichier et pas qu'au début de la fonction
- l'utilisation de type tels que unsigned long int, il semble n'aimer que les int
J'ai utilisé la commande suivante pour compiler :
mex COMPFLAGS="$COMPFLAGS -Wall -std=C99" ZZ.c zigzag.c
J'obtiens le message :
cl : Command line warning D9002 : ignoring unknown option '-std=C99'
Comment lier mon projet à MATLAB sans devoir à réadapter mon projet?
Le but des MEX files n'est il pas justement d'éviter tout un travail de réécriture de code?
Ou les MEX files servent ils uniquement à implémenter du code destiné seulement à MATLAB? (parce que si MATLAB impose ces conventions, les MEX files ne servent pas à grand chose!)
Existe-il d'autres outils plus adaptés pour mes besoins?
Merci d'avance pour tout aide.
Partager