IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Undefined symbol and Call to undefined function


Sujet :

C++

  1. #1
    Membre habitué Avatar de airballman
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 256
    Points : 178
    Points
    178
    Par défaut Undefined symbol and Call to undefined function
    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) .
    Maison et Boulot : Python - OpenCV/Numpy - IPython
    Boulot : Ubuntu 11.04
    Maison : #!, bien sûr

    Astuces Linux, Python et autres Matlab
    Photos/fonds d'écran (bon ok faut aimer la nature )

  2. #2
    Membre habitué Avatar de airballman
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 256
    Points : 178
    Points
    178
    Par défaut
    Bon, j'ai avancé un peu :

    J'ai crée une variable PI qui me permet de régler une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifndef PI
    #define PI 3.14159265358979323846
    #endif
    Ensuite, pour ce qui est des fonctions complex, polar, real et iamge qui ne sont pas définies, j'ai essayé de m'appuyer sur le 'complex.h' en ajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "complex.h" en début de fichier
    J'ai maintenant des erreurs différentes. JE suis sûr qu'en réglant le problème du complex tout devait rouler sans problèmes, car les erreurs s'entraînent les une après les autres .

    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
    Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland 
    mb_Znl.cpp: 
    Error E2102 mb_Znl.cpp 53: Cannot use template 'complex<T>' without specifying specialization parameters in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
    Error E2040 mb_Znl.cpp 53: Declaration terminated incorrectly in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
    Error E2102 mb_Znl.cpp 54: Cannot use template 'complex<T>' without specifying specialization parameters in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
    Error E2040 mb_Znl.cpp 54: Declaration terminated incorrectly 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 E2121 mb_Znl.cpp 63: Function call missing ) in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
    Error E2380 mb_Znl.cpp 67: Unterminated string or character constant in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
    Error E2379 mb_Znl.cpp 69: Statement missing ; in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
    Error E2451 mb_Znl.cpp 111: Undefined symbol 'sum' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
    Error E2451 mb_Znl.cpp 116: Undefined symbol 'Vnl' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
    Error E2285 mb_Znl.cpp 132: Could not find a match for 'conj<T>(undefined)' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
    Error E2285 mb_Znl.cpp 144: Could not find a match for 'real<T>(undefined)' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
    Error E2285 mb_Znl.cpp 145: Could not find a match for 'imag<T>(undefined)' in function mexFunction(int,mxArray_tag * *,int,const mxArray_tag * *) 
    *** 13 errors in Compile *** 
     
      C:\PROGRA~1\MATLAB\R2007B\BIN\MEX.PL: Error: Compile of 'mb_Znl.cpp' failed.

    Le créateur du code l'a utilisé pour sa thèse, je pense donc qu'il devrait tourner et que ce n'est qu'un problème mineur :s

    Une idée?
    Maison et Boulot : Python - OpenCV/Numpy - IPython
    Boulot : Ubuntu 11.04
    Maison : #!, bien sûr

    Astuces Linux, Python et autres Matlab
    Photos/fonds d'écran (bon ok faut aimer la nature )

Discussions similaires

  1. [XSLT] Call to undefined function xslt_create
    Par rudy207 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 30/04/2009, 18h27
  2. [SGBD] Call to undefined function mysql_connect()
    Par monphp dans le forum SQL Procédural
    Réponses: 13
    Dernier message: 29/01/2006, 22h33
  3. Call to undefined function mysql_connect()
    Par monphp dans le forum Installation
    Réponses: 1
    Dernier message: 29/12/2005, 14h31
  4. Réponses: 11
    Dernier message: 08/12/2005, 17h54
  5. Call to undefined function mysql_pconnect()
    Par shirya dans le forum Installation
    Réponses: 2
    Dernier message: 03/11/2005, 22h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo