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 :

[COMPILER] Problème de compilation


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut [COMPILER] Problème de compilation
    Salut j'ai le meme probleme que dans ce post : Compilation d'appli stand alone, je crée un lanceur.exe avec la commande :de mon application assez volumineuse mais lors du lancement du .exe il m'affiche une erreur {il m'affiche qu'il ne trouve pas une fonction} alors si quelq'un sait comment je peux rémedier à ce problème je serai reconnaissant

    Ps: j'ai trouvé "il suffit que j'ajoute un chemin genre /MCR/v73/runtime/win32 dans le répertoire de l'exe, et la ca tourne meme si j'ai pas Matlab ?????
    "
    comment faire?

  2. #2
    Expert confirmé
    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
    Par défaut
    Tu as toutes les explications dans la :
    Comment créer un exécutable fonctionnant sans MATLAB ?

    Si tu as toujours des soucis merci d'indiquer : ta plate-forme + ta version de MATLAB.

    Pour la fonction non trouvée peux-tu retrouver l'endroit dans ton code où elle est appelée et comment elle est appelée (tu peux avoir des problèmes si tu as utilisé par exemple des fonctions comme EVAL ou FEVAL)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    Salut,
    Merci pour le forum proposé,
    je devéloppe avec Matlab 7.1 (R14) Service pack 3 sous vista
    le lien je l'ai déjà vu c'est à partir de cette discution que j'ai créé mon prog.exe j'ai remarqué autre chose, j'ai créé un programme qui affiche la chaine 'salut' et j'appelle l'exe en mode de console il l'affiche mais le problème qu'il ne se terminne pas correctement il m'affiche sur une petite fenetre ce message
    "prog.exe a cssé de fonctionner fermer le programme"

    Merci pour tout aide !

  4. #4
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    Citation Envoyé par boukharyinfos Voir le message
    je devéloppe avec Matlab 7.1 (R14) Service pack 3 sous vista
    Le problème est simple, tu utilises MATLAB sur Vista qui est une plate-forme non supportée en R14SP3:

    Ta seule solution c'est d'utiliser une version plus actuelle de MATLAB, pourquoi pas la 8a
    par exemple?!!!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    salut: j'ai essayé avec XP et ça marche avec un exemple qui n'appelle pas d'autres fonctions le problème est que j'utilise des fonctions qui se trouvent dans des dossiers à la racine de ma méthode principale.
    donc restons dans XP comment je paeux faire un exe qui prend en compte les méthodes qui se trouvent dans les sous dossiers je me demmande est ce possible?

    j'ai vu la discution Compilation d'appli stand alone
    ou tug83 a cité :
    Citation Envoyé par tug83 Voir le message
    Ajouter le path <mcr_root>/<version>/runtime/<arch>.
    est nécessaire si tu as l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    This application has failed to start because mclmcrrt7x.dll was not found. Re-installing the application may fix this problem.
    comme indiqué dans l'aide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    web([docroot,'/toolbox/compiler/bqoy17y.html'])
    je n'ai pas su qu'est ce qu'il a voulu ajouté !!!



    Ta seule solution c'est d'utiliser une version plus actuelle de MATLAB, pourquoi pas la 8a
    par exemple?!!!
    c'est pas gratuit

  6. #6
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    Citation Envoyé par boukharyinfos Voir le message
    salut: j'ai essayé avec XP et ça marche
    voilà CQFD!!! vista c'est bien mais seulement à partir de la 7a où c'est supporté.
    Sinon je ne comprends rien à ton second problème (je suis tug83 au passage)
    quel est ton message d'erreur ? est ce que ça marche dans MATLAB avant d'utiliser le ML Compiler?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    Citation Envoyé par tug83 Voir le message
    quel est ton message d'erreur ? est ce que ça marche dans MATLAB avant d'utiliser le ML Compiler?
    mon message d'erreur est "le programme.exe a cessé de fonctionner" il m'affiche ce message après avoir appeler le .exe en ligne de commande ou sous Matlab
    le problème qui est posé c'est toujours le même j'ai trouvé que tu as cité dans une autre discussion qu'on a pas besoin d'inclure tous les fichiers par :
    mcc -m fichier1.m fichier2.m ...
    alors que moi il m'affiche un message d'erreur indiquant qu'il ne trouve pas une fonction !!
    si j'étais pas claire merci de me l'indiquer!!!

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    Bonjour,
    je souffre toujours avec le même problème je vous ai envoyé le message d'érreur en utilisant la console, maintenent je vous envoie le message d'érreur en utilisant l'appel !programme "en mode graphique"
    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
    >> !programme 
    This MATLAB file does not have proper version information and may be corrupt. 
    The file 
       'E:\Sources\fonction1.m' 
       is not in the application's expanded CTF archive at 
        'E:\Sources\programme_mcr'. 
    This is typically caused by calls to ADDPATH in your startup.m or matlabrc.m files. Please see the compiler documentation and use the ISDEPLOYED function to ensure ADDPATH commands are not executed by deployed applications. 
    The M-file 
       "E:\\Sources\fonction1.m" 
    cannot be executed. 
    Error in ==> programme at 42 
     
    MATLAB:err_parse_cannot_run_m_file 
    Extracting CTF archive. This may take a few seconds, depending on the 
     size of your application. Please wait... 
    ...CTF archive extraction complete.
    Merci pour votre aide si je ne t'ai pas assez claire n'hésitez pas à me le dire ça m'aidera!!

  9. #9
    Expert confirmé
    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
    Par défaut
    Quelques questions pour pouvoir te répondre :
    1. As-tu un fichier startup.m ? Si oui à quoi ressemble-t-il ?
    2. A quel moment est appelé ce fameux fichier fonction1.m ?
    3. Ton programme fonctionne-t-il correctement dans MATLAB ?
    4. Comme te le demande MATLAB as-tu des appels à la fonction ADDPATH dans l'un ou plusieurs des fichiers utilisés par programme ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1. As-tu un fichier startup.m ? Si oui à quoi ressemble-t-il ?
    oui c'est une fonction qui appelle une autre fonction d'authentification puis elle appelle une fonction graphique(c-à-d l'interface)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2. A quel moment est appelé ce fameux fichier fonction1.m ?
    ce fichier est appelé juste le prémier car il permet d'authentifier l'utilisateur de l'application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    3. Ton programme fonctionne-t-il correctement dans MATLAB ?
    il fonctionne impécablement !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    4. Comme te le demande MATLAB as-tu des appels à la fonction ADDPATH dans l'un ou plusieurs des fichiers utilisés par programme
    oui tout à fait mon programme appelle plusieurs fois à la fonction ADDPATH.
    Je rajoute que j'ai essayé avec matlab 7.5 sous XP et j'ai trouvé autre probleme il me signale que l'application n'a pas pu rédemarrer car "la bibliothèque mclmcrrt73.dll est introuvable"
    Merci pour tout aide

  11. #11
    Expert confirmé
    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
    Par défaut
    Citation Envoyé par boukharyinfos Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1. As-tu un fichier startup.m ? Si oui à quoi ressemble-t-il ?
    oui c'est une fonction qui appelle une autre fonction d'authentification puis elle appelle une fonction graphique(c-à-d l'interface)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    4. Comme te le demande MATLAB as-tu des appels à la fonction ADDPATH dans l'un ou plusieurs des fichiers utilisés par programme
    oui tout à fait mon programme appelle plusieurs fois à la fonction ADDPATH.
    Donc comme te le dit MATLAB :
    Citation Envoyé par MATLAB
    This is typically caused by calls to ADDPATH in your startup.m or matlabrc.m files. Please see the compiler documentation and use the ISDEPLOYED function to ensure ADDPATH commands are not executed by deployed applications.
    La commande ADDPATH ne peut être compilée. Pour la simple et bonne raison qu'elle ne signifie plus rien dans le cadre d'une application compilée : en effet tu n'as plus la même arborescence de répertoires ni de fichiers.

    Il faut donc modifier ton programme pour pouvoir le compiler.
    Ce qu'il faut comprendre c'est que quelquesoit le programme compilé (ici le fichier programme.m si j'ai bien suivi), le fichier startup.m est automatiquement compilé avec.
    As-tu besoin de ce fichier startup.m dans ton exécutable ?
    - si non renomme-le avant de compiler programme.m
    - si oui, il faut le modifier pour qu'il n'y ait plus de addpath. Une solution consisterait à "sortir" les addpath ie les mettre en commentaires dans le startup, et les faire "à la main" en ligne de commande avant de lancer la compilation.

    Et si tu as des ADDPATH à d'autres endroits de ton programme il faut aussi les enlever (enfin en utilisant la fonction ISDEPLOYED) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ~isdeployed
       addpath...
    end
    Pour info : ce ne sont que des idées que je n'ai pas testées, n'ayant pas MATLAB actuellement.

    Pour ton autre problème (7.5 sur XP) j'avoue ne plus suivre tes différentes configurations, c'est un peu confus...

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    Bonjour caro95470 j'ai fait ce que tu m'as conseillé mais apparement il y a autre problème le problème des images jpeg il me signale lors de l'appel de l'executable et j'ai consulté certains forums et ça trouvé que c'est un problème très connu mais malheureusement personne n'a parler de solution c'est pour cela je n'ai pas pu savoir est ce que le problème de addpath est totalement résolu finalement je crois que je ne vais pas voir mon exe marche comme le dit des personnes sur differents forums
    si quelqu'un a déjà resolu ce problème peux m'aider

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut

    si je n'étais pas claire veuillez me le dire ça va m'aider ou si personne avait ce problème et qu'il est arrivé à un point de blockage il me le dit ça peut m'aider aussi

  14. #14
    Expert confirmé
    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
    Par défaut
    Effectivement je ne suis pas sure d'avoir bien compris.
    Aurais-tu un joli message d'erreur à nous donner ?
    Je prendrais un peu plus de temps ce soir pour essayer de te répondre.

  15. #15
    Expert confirmé
    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
    Par défaut
    As-tu essayé d'utiliser le deploytool plutôt que la ligne de commande ?

    Sinon je suppose que dans ton programme quelque part tu essayes de charger des images : comment le fais-tu ?
    Donnes-tu le chemin vers ces images (complet ou partiel) ?
    Dans ce cas il faudra encore utiliser la fonction isdeployed, et pour le cas compilé charger sans le chemin et donc copier tes images dans le même répertoire que le fichier .exe.

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    salut le message d'erreur est tout simlément qu'il ne trouve la prémière image à charger elle situe juste au démarage de l'appli, peut être du au fait que j'ai oublié de copier les images et les icones dans le dossier_mcr (icones bitmap et figure JPG) mais le problème est que les images sont tous régroupé dans un dossier image et je viens de le copier dans le répertoire en question. mais je dois peut être refaire mon exe. concernant deploytool paut etre je n'ai pas le meuilleur compilateur

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    j'ai copié le fichier d'images dans le bon endroit mais ça n'a ps marché je crois si j'ai bien compris l'indication il suffit ça?

  18. #18
    Expert confirmé
    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
    Par défaut
    Peux-tu nous montrer un exemple avec :
    La ligne de code qui charge le fichier image
    L'arborescence de répertoires où ce fichier se trouve dans le dossier où se trouve l'exe.

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    Bonjour
    Concernant l'exe il transforme tous mes fichier dans la même arborescente mais dedans il n'y a plus le code Matlab mais des caractères type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ±d{÷”S*‘=Ã/ÿÙ
    5¤¿ ’ó=ôQÞì£�Ž"ð”h¸g\Aù®gNÕšB©sùµOÜD0ƒõH´å3z€ÊòÑ\乜o•R†®=ë&$zT‘±äxÜ‹‘ÙéË�Ü©ú%�—/§aNA´Ë‡«1ß@?vÈ�|_~_m²f$m
    je sais que ça n'aide à rien mais juste pour éclaircire, à savoir le fichier qui contient le logo.JPG et les icones bitmap qui n'âpparaît pas dans le fichier extraît je l'ai copié dans la nouvelle arborescente mais ça marche pas toujours.

    ligne de code qui charge l'image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    imlogo = which('Logo_apli.jpg');
    [logo,maplogo] = imread(imlogo,'jpeg');
    logosize = [size(logo,2) size(logo,1)];
    ce code est appleé par une méthode dans un dossier qui es applé par une autre méthode à la racine
    j'éspère que j'étais un peu claire!

  20. #20
    Expert confirmé
    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
    Par défaut
    Ah OK : which ne fonctionnera pas dans ton application déployée.
    Tu dois donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if isdeployed
       imlogo='Logo_apli.jpg';%suppoe que Logo_apli.jpg est dans le même répertoire que l'exe
    else
       imlogo = which('Logo_apli.jpg');
    end
    Et pour les .m c'est normal.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Compilation] problème de compilation
    Par mitmit dans le forum Débuter
    Réponses: 5
    Dernier message: 29/02/2008, 20h14
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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