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 :

Compilation C/C++ avec librairie MATLAB via Code::Blocks


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 26
    Points : 16
    Points
    16
    Par défaut Compilation C/C++ avec librairie MATLAB via Code::Blocks
    Bonsoir,

    Je cherche à utiliser une librairie Matlab perso dans un programme C/C++.

    J'ai compilé "moncodeMatlab.m" de la manière suivante:
    J'obtiens divers fichiers dont:
    - moncodeMatlab.lib
    - moncodeMatlab.ctf
    - moncodeMatlab.h

    Je sais qu'on peut compiler un programme C linké avec une librairie Matlab à l'aide de mbuild, mais j'aimerais parvenir à faire "l'inverse": compiler mon programme C + librairie Matlab par exemple dans Code::Blocks et en me passant de Matlab.

    J'ai essayé de bidouiller dans Code::Blocks sans succès même en utilisant lcc. J'ai l'impression qu'il faut impérativement passer par mbuild pour pouvoir compiler.

    Est-ce que c'est possible en théorie?
    Est-ce qu'avec des mex-files j'aurais moins de problèmes?

    Merci pour vos réponses!

  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 882
    Points
    52 882
    Par défaut
    Les commandes MEX, MCC ou MBUILD sont en fait des appels à des scripts contenus dans le dossier [matlabroot '/bin/]

    Il est possible de les utiliser en dehors de MATLAB.

    Sous Code::Blocks, tu devrais pouvoir exécuter ces commandes avant la compilation de ton projet => Pre-build and post-build steps
    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 à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Ok merci pour ta réponse. J'ai regardé les scripts mais c'est une usine à gaz écrite en perl. Je vais trouver une autre solution!

  4. #4
    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 882
    Points
    52 882
    Par défaut
    Tout dépend de ce que tu comptes faire.

    As-tu réellement besoin de passer par MBUILD ?

    Le code compilé doit-il s'exécuter sur une machine sans MATLAB ?
    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)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Je cherche à compiler un programme principal écrit en C++ utilisant une librairie matlab générée avec mcc.

    Impossible d'effectuer la compilation sous code::blocks. Je n'y suis parvenu qu'en installant le compilateur visual C++ express edition 2005 dans Matlab et en compilant avec MBUILD. Le compilateur livré avec Matlab 2007 (lcc) ne compile que du C.

    C'est gênant parce qu'à la compilation j'obtiens un paquet d'erreurs liées au code C++ qui n'apparaissaient pas quand je compilais dans code::blocks avec gcc. C'est dû à l'utilisation de VC++ 2005. De plus il faut installer l'usine à gaz qu'est le SDK microsoft pour que ça fonctionne. Et les compilateurs compatibles avec matlab évoluent au fil des versions.
    Et surtout je ne suis pas certain qu'en compilant de cette manière l'utilisation de certaines fonctions où librairies soit correctement pris en charge (par exemple les fonctions de windows.h)

    En fait je pense que Matlab n'est pas tellement fait pour ce genre d'utilisation. Sauf peut être en cherchant du côté des mex-files ou de Matlab coder, mais là encore c'est l'usine à gaz.

    Finalement je suis parti pour utliser opencv.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction undefined reference avec SDL 2 et Code::Blocks
    Par therev123 dans le forum OpenGL
    Réponses: 7
    Dernier message: 07/08/2013, 18h54
  2. [AC-2007] Interfacer ACCESS avec OCTAVE (MATLAB) via VBA
    Par Triton972 dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/10/2011, 11h21
  3. Cross compiling mipsel uclibc avec librairie
    Par candriant dans le forum Linux
    Réponses: 0
    Dernier message: 09/06/2010, 00h46
  4. compilation dun code avec librairie
    Par darkmen11 dans le forum Visual C++
    Réponses: 0
    Dernier message: 03/05/2009, 20h17
  5. librairie GTK pour code::blocks
    Par teddy42 dans le forum Code::Blocks
    Réponses: 6
    Dernier message: 25/10/2006, 19h47

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