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

MATLAB Discussion :

Erreur passage de MATLAB 2006 à MATLAB R2012b


Sujet :

MATLAB

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut Erreur passage de MATLAB 2006 à MATLAB R2012b
    bonjour,

    j'ai un léger problème avec le mex
    j'ai besoin de récupérer dans Matlab une (grosse) fonction C.

    un de mes collègues, qui bosse sur Matlab R2006b, a un fichier mex_outil.c
    ainsi qu'un fichier compilation_outil.m qui lance le mex mex_outil.c (avec les chemins de répertoire et les options qui vont bien ), et ça marche parfaitement.

    quand je fais de même sur Matlab R2012b, j'arrive a compiler, mais au lancement de la fonction outil.mexw32 j'ai une segmentation fault, et matlab meurt dans d'atroces souffrances.

    Je ne comprends pas trop d'ou peut venir cette erreur. Ce n'est pas une erreur dans le code C vu que ça marche parfaitement chez mon collègue...

    Je travaille sur windows 7 32 bits avec Matlab r2012b.

    quand je fais mex -setup, je n'ai que LCC comme compilateur disponible

    faut il que j'essaye d'en trouver un autre?

    merci d'avance

    Dom

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Citation Envoyé par Dombrai Voir le message
    faut il que j'essaye d'en trouver un autre?
    Cela pourrait effectivement résoudre le problème => FAQ : http://matlab.developpez.com/faq/?pa...ix_compilateur

    En gratuit sous Windows 32bits : http://www.microsoft.com/en-us/downl...s.aspx?id=8279
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    bonjour,

    merci de ta réponse. Cependant, je ne suis pas admin de mon ordi et ne peux installer SDK.

    je vais tenter d'installer visual studio

    ce que je ne comprends pas c'est que selon la doc matlab, LCC est compatible avec ma version. Le probleme vient donc du fait que LCC est un peu moisi, ou bien?

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    Salut, après un long combat contre mon service info, j'ai pu installer Visual Studio 2008, qui selon la theorie est supporte par ma version de Matlab R2012b

    Cependant quand je fais un mex -setup, il ne trouve pas le compilateur de visual studio et ne me propose que LCC

    que faut il faire pour que matlab trouve ce compilateur?

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Quel version exacte as-tu installé ?

    Sur le site de MathWorks pour la version 32bits, on peut lire : Microsoft Visual C++ 2008 Professional SP1
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    ... damned, ils m'ont mis la version express...
    Visual C++ 2008 express

    bon ben je suis reparti pour une lutte acharnée...

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Demande leur d'installer celui-ci :
    Citation Envoyé par Dut Voir le message
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  8. #8
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    Bonjour,
    A la suite d'une manœuvre dont la fourberie n'a rien a envier à celle du dit Scapin, j'ai pu installer SDK 71 et .NETFRAMEWORK Matlab les détecte convenablement, mais j'ai une erreur a la compilation qui est celle-ci :

    Error mex_antigone_2.c: 91 operands of = have illegal types `pointer to incomplete struct mxArray_tag defined at C:\MATLAB\R2012b\extern\include\matrix.h 299' and `int'
    Warning mex_antigone_2.c: 177 assignment of pointer to pointer to const char to pointer to pointer to char
    Error mex_antigone_2.c: 269 operands of = have illegal types `pointer to incomplete struct mxArray_tag defined at C:\MATLAB\R2012b\extern\include\matrix.h 299' and `int'
    Les lignes considérées sont
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		plhs[1] = mxCreateScalarDouble(0);
    	plhs[0] = mxCreateScalarDouble(l_nRet);
    Il me semble que c'est du au fait que la fonction mxCreateScalarDouble() a subi les foudres de MathWorks, et a gagné sa place au cimetière . Quelle fonction puis-je utiliser pour la remplacer efficacement? Je pensais utiliser mxCreateDoubleMatrix mais bon c'est pas top niveau dimensions...

  9. #9
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    au temps pour moi, une fouille plus approfondie semble indiquer que le remplacant de
    mxCreateScalarDouble()
    est
    mxCreateDoubleScalar()

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Utilise mxCreateDoubleScalar
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  11. #11
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    bon j'y suis presque, je n'ai plus qu'une erreur de type dans un de mes headers.
    le header en question est
    Code C : 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
    20
    21
    22
    23
    24
    #ifndef MATHF_H
    #define MATHF_H
     
    #include <math.h>
     
    float sqrtf( float x );
     
    float fabsf( float x );
     
    float cosf( float x );
     
    float sinf( float x );
     
    float atan2f( float x , float y);
     
    float tanf( float x );
     
    float asinf( float x );
     
    float powf( float x, float y );
     
    float expf( float x );
     
    #endif


    et le fichier source est

    Code C : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #include <math.h>
    #include <mathf.h>
     
    float sqrtf( float x )
    {
    	return((float)sqrt((float)x));
    }
     
    float fabsf( float x )
    {
    	return((float)fabs((float)x));
    }
     
    float cosf( float x )
    {
    	return((float)cos((float)x));
    }
     
    float sinf( float x )
    {
    	return((float)sin((float)x));
    }
     
    float atan2f( float x , float y )
    {
    	return((float)atan2((float)x, (float)y));
    }
     
    float tanf( float x )
    {
    	return((float)tan((float)x));
    }
     
    float asinf( float x )
    {
    	return((float)asin((float)x));
    }
    float powf( float x, float y )
    {
    	return((float)pow((float) x, (float) y));
    }
     
     
    float expf( float x )
    {
    	return((float)exp((float) x));
    }
    /*EOF*/

    l'erreur de compilation derriere est
    C:\Users\...DIVERS\header\mathf.h(6) : error C2059: syntax error : 'type'
    C:\Users\...DIVERS\header\mathf.h(8) : error C2059: syntax error : 'type'
    C:\Users\...DIVERS\header\mathf.h(10) : error C2059: syntax error : 'type'
    C:\Users\...DIVERS\header\mathf.h(12) : error C2059: syntax error : 'type'
    C:\Users\...DIVERS\header\mathf.h(14) : error C2059: syntax error : 'type'
    C:\Users\...DIVERS\header\mathf.h(16) : error C2059: syntax error : 'type'
    C:\Users\...DIVERS\header\mathf.h(18) : error C2059: syntax error : 'type'
    C:\Users\...DIVERS\header\mathf.h(20) : error C2059: syntax error : 'type'
    C:\Users\...DIVERS\header\mathf.h(22) : error C2059: syntax error : 'type'
    pourtant je ne vois pas ou est l'erreur de syntaxe... quand j'essaie de compiler avec LCC il n'en détecte pas (bon ça segfaulte a la fin mais je pense pas que ce soit du a ça.)

    Any ideas?

  12. #12
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    bonjour à tous,

    je me permets de relancer cette discussion.
    Après avoir discuté avec quelques collègues, il semblerait que les difficultés que je rencontre sont dues a des erreurs de compil, du coup il faut vraiment que j'arrive a passer outre les erreurs de SDK mentionnées ci-dessus. Quelqu'un sait-il pourquoi il me renvoie ses étranges messages d'erreur? Je ne vois pas en quoi il y a une quelconque erreur de syntaxe dans ce bout de code. Le fait est que le même code a aucun problème a se faire compiler par de vieilles versions de Visual Studio, malheureusement incompatibles avec Matlab R2012b.

    merci d'avance

Discussions similaires

  1. [Blog] matlab, mathlab, MatLab ou MATLAB ?
    Par Jerome Briot dans le forum MATLAB
    Réponses: 0
    Dernier message: 05/01/2014, 21h34
  2. Erreur UTF8 dans la conversion MATLAB - Scilab
    Par nicollivier dans le forum Scilab
    Réponses: 2
    Dernier message: 26/02/2010, 10h06
  3. Passage de variables depuis matlab vers le shell
    Par Adakite dans le forum MATLAB
    Réponses: 2
    Dernier message: 12/01/2010, 17h11
  4. [Débutant] [Matlab 2006] Seqgen.pn
    Par aimas87 dans le forum MATLAB
    Réponses: 0
    Dernier message: 02/01/2010, 21h04
  5. Réponses: 1
    Dernier message: 06/08/2008, 15h31

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