Bonjour tout le monde,

Je code sous Matlab, et la raison de ma présence ici est que j'ai besoin de compiler un fichier c++ pour en faire un mex. Je cherche en fait à réutiliser une partie d'un code qui a été développé ici

Je compile un fichier nommé 'mb_Znl.cpp' à l'aide de Borderland 5.0.
J'ai des erreurs de compilation (j'ai réussi à en régler certaines mais je bloque sur celles qui restent) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
mb_Znl.cpp: 
Error E2451 mb_Znl.cpp 48: Undefined symbol 'complex' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2379 mb_Znl.cpp 48: Statement missing ; in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2379 mb_Znl.cpp 49: Statement missing ; in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2380 mb_Znl.cpp 57: Unterminated string or character constant in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2121 mb_Znl.cpp 58: Function call missing ) in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2380 mb_Znl.cpp 62: Unterminated string or character constant in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2379 mb_Znl.cpp 64: Statement missing ; in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2451 mb_Znl.cpp 106: Undefined symbol 'sum' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2451 mb_Znl.cpp 111: Undefined symbol 'Vnl' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2268 mb_Znl.cpp 116: Call to undefined function 'polar' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2268 mb_Znl.cpp 127: Call to undefined function 'conj' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2451 mb_Znl.cpp 130: Undefined symbol 'PI' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2268 mb_Znl.cpp 139: Call to undefined function 'real' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
Error E2268 mb_Znl.cpp 140: Call to undefined function 'imag' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
*** 14 errors in Compile *** 
 
  C:\PROGRA~1\MATLAB\R2007B\BIN\MEX.PL: Error: Compile of 'mb_Znl.cpp' failed.
Je comprends en fait les erreurs que j'obtiens, et je me doute qu'il doit manquer un include au début du fichier. J'ai déjà moi-même ajouté le #include "math.h" qui m'apermis de régler une certaine partie des erreurs.

Voici l'en-tête du fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#include "mex.h"
#include "matrix.h"
#include "math.h"
 
#define row 0mex
#define col 1

Ma question est en fait très simple, devant le nombre de fonction qui ne sont pas définies ici, je me doute qu'il manque simplement un #include qui serve aux calculs complexes . Oui mais voilà, quel appel manque-t-il?

Je ne suis pas du tout familier avec les built-in C, et encore moins C++ :s

Merci d'avance, je reste à disposition si vous voulez plus d'informations!
( et je m'excuse par avance si il y a des informations que j'ai oubliées de donner) .