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 :

Creation d'un mex a partir de c++


Sujet :

MATLAB

  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 Creation d'un mex a partir de c++
    Bonjour,

    Tout d'abord, je travaille (enfin j'essaye) de travailler à partir de code provenant d'une thèse que vous pourrez voir ici

    Je cherche à réutiliser ce code afin de calculer les moments de Zernike d'imagettes .

    Le code en question est celui de la fonction mb_zernike.m . Cette fonction appelle une autre fonction, nommée mb_Znl.
    Oui mais voila, cette fonction mb_Znl est codée en C++ et je n'ai jamais travaillé avec plusieurs langages à la fois :s

    J'en déduis qu'il faut créer un mex à partir du c++ afin de le rendre directement utilisable par matlab.

    J'ai donc testé en faisant
    et
    mais j'obtiens une fenêtre d'erreur qui dit
    lcc.exe has encountered a problem and needs to close. We are sorry for the inconvenience.
    DE plus, j'ai alors le message
    C:\PROGRA~1\MATLAB\R2007B\BIN\MEX.PL: Error: Compile of 'mb_Znl.cpp' failed.

    ??? Error using ==> mex at 208
    Unable to complete successfully.
    qui s'affiche.

    Je ne sais pas vraiment comment régler le problèmes :s

    J'ai essayé de compiler directement le fichier c++ avec code::blocks et g++.
    Mais dans l'entête il y a des appels
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include "mex.h"
    #include "matrix.h"
    #include 
    #include 
    #include 
     
    #define row 0mex
    #define col 1
    Au vu des noms et du fait que je ne trouve aucun fichier de la sorte sur le site, j'en déduis que ces .h sont des fichiers contenus quelque part par Matlab?


    Est ce que quelqu'un aurait une idée de comment je pourrais réussir à lancer cette fonction mb_Znl? J'avoue que je suis un peu perdu :s


    Merci d'avance, je reste dispo si vous voulez plus d'infos!
    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
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Bon, moi je suis nulle avec les fichiers MEX mais il me semble quand même que LCC c'est un compilateur C pas C++.
    Donc il faut que tu sélectionnes un compilateur C++ installé sur ton PC et compatible avec ta version de MATLAB.


    Pour la 2ème partie mex.h et matrix.h sont normalement quelque part dans l'arborescence de MATLAB.
    Je ne suis pas sure que tu puisses compiler en dehors de MATLAB (mais je peux dire des bêtises ).

    Bon courage
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    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
    Yahou la réponse ultra méga rapide!
    Je suis amoureux ca y est, même pas eu le temps d'aller me chercher un café

    J'ai essayé de changer le compilateur déjà et de prendre le compilo de M$ 2005 c++. (a force on prend l'habitude de lire la doc avant de poster ) .

    Je vais reregarder de ce côté là tout de même.

    Merci caro
    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 )

  4. #4
    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 à ce que je peux voir le problème vient bien de ce que tu dis. Seulement quand je fais un mex -setup , je n'ai que le chois de LCC.

    Pourtant, j'ai bien Microsoft Visual c++ 2005 redistribuable d'installé sur le pc. A priori je devrais donc avoir le compilo installé aussi et avoir ce"tte option dans le choix de compilateur matlab non?


    De plus, j'ai installé au passage code::blocks, ce qui devrait me donner un troisième compilateur possible si je ne m'abuse?

    Faut-il rajouter le chemin des compilateurs mano a mano dans les options de matlab?
    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 )

  5. #5
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Faut tenter.

    Y'a déjà des sujets là-dessus (même si pas forcément les mêmes versions), par exemple :
    http://www.developpez.net/forums/d61...ion-mex-setup/
    Règles du Forum

    Adepte de la maïeutique

  6. #6
    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 en fait il s'avere qu'au bureau j'ai la suite M$ visual d'installée mais pas le compilateur...

    J'ai donc installé borderland via la page c++ de dev.com et l'option apparait quand je demande de change de compilo avec un mex -setup.

    J'ai des erreurs de compilation maintenant, mais au moins il essaie de compiler.

    Je vais voir si je peux régler le problème par moi même avant de flooder ici.


    Merci pour le coup de main et peut-être à toute à l'heure
    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. [Conception] creation de fiche dynamique a partir d'une base de données
    Par badnane2 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/06/2006, 16h50
  2. creation d'un .exe a partir d'un .exe et d'un .dll?
    Par phyll dans le forum Windows
    Réponses: 2
    Dernier message: 09/05/2006, 19h19
  3. Réponses: 4
    Dernier message: 18/10/2005, 15h21
  4. Réponses: 9
    Dernier message: 23/08/2005, 16h29
  5. Réponses: 2
    Dernier message: 02/11/2004, 12h38

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