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 :

Exploiter un .c sur Mac


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Par défaut Exploiter un .c sur Mac
    Bonjour,

    j'ai récupéré un dossier Matlab qui contient des fichiers écrits en C et qui sont appelés grâce à la fonction dos.
    Le problème c'est que je suis sur Mac, et si j'ai bien compris cela ne marche pas aussi bien, en tout cas chez moi ça ne marche pas.

    J'ai un peu fouillé partout, et j'ai du mal à trouver mon bonheur. Certains bidouillent sans que je comprenne quoi que ce soit, et j'ai beau avoir tenté les mex -setup ou autre, je n'aboutis à rien. Le message d'erreur à la base de tout serait celui-ci :

    /Applications/MATLAB_R2012a.app/bin/mex: line 305: gcc-4.2: command not found
    /Applications/MATLAB_R2012a.app/bin/mex: line 1326: gcc-4.2: command not found

    Je suis un peu perdu, apparemment il faudrait installer un patch (et je n'ai absolument aucune idée de comment faire, et le seul tuto sur internet que j'ai trouvé m'est incompréhensible… ) mais de toute façon sur le site mathworks il s'arrête aux versions 4.5 de Xcode quand j'ai la version 5.1.

    Je vous remercie infiniment si vous pouvez m'éclairer.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Par défaut
    Bon, la situation a évolué.

    J'ai suivi ce tuto :
    http://audioplastic.org/blog/2014/02...ons-of-matlab/

    Et la compilation marche, j'ai un fichier.o qui est créé mais la dernière étape plante. Certains symboles ne seraient pas reconnus :
    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
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
      ----------------------------------------------------------------
    ->    MATLAB                = /Applications/MATLAB_R2012a.app
    ->    CC                    = llvm-gcc
    ->    CC flags:
             CFLAGS             = -fno-common -no-cpp-precomp -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.9 -fexceptions
             CDEBUGFLAGS        = -g
             COPTIMFLAGS        = -O2 -DNDEBUG
             CLIBS              = -L/Applications/MATLAB_R2012a.app/bin/maci64 -lmx -lmex -lmat -lstdc++ -framework Accelerate
             arguments          =  -DMX_COMPAT_32
    ->    CXX                   = llvm-g++
    ->    CXX flags:
             CXXFLAGS           = -fno-common -fexceptions -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.9
             CXXDEBUGFLAGS      = -g
             CXXOPTIMFLAGS      = -O2 -DNDEBUG
             CXXLIBS            = -L/Applications/MATLAB_R2012a.app/bin/maci64 -lmx -lmex -lmat -lstdc++ -framework Accelerate
             arguments          =  -DMX_COMPAT_32
    ->    FC                    = gfortran
    ->    FC flags:
             FFLAGS             = -fexceptions -m64 -fbackslash
             FDEBUGFLAGS        = -g
             FOPTIMFLAGS        = -O
             FLIBS              = -L/Applications/MATLAB_R2012a.app/bin/maci64 -lmx -lmex -lmat -L -lgfortran -L -lgfortranbegin
             arguments          =  -DMX_COMPAT_32
    ->    LD                    = llvm-gcc
    ->    Link flags:
             LDFLAGS            = -Wl,-twolevel_namespace -undefined error -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.9 -bundle -Wl,-exported_symbols_list,/Applications/MATLAB_R2012a.app/extern/lib/maci64/mexFunction.map
             LDDEBUGFLAGS       = -g
             LDOPTIMFLAGS       = -O
             LDEXTENSION        = .mexmaci64
             arguments          = 
    ->    LDCXX                 = 
    ->    Link flags:
             LDCXXFLAGS         = 
             LDCXXDEBUGFLAGS    = 
             LDCXXOPTIMFLAGS    = 
             LDCXXEXTENSION     = 
             arguments          = 
    ----------------------------------------------------------------
     
    -> llvm-gcc -c  -I/Applications/MATLAB_R2012a.app/extern/include -I/Applications/MATLAB_R2012a.app/simulink/include -DMATLAB_MEX_FILE -fno-common -no-cpp-precomp -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.9 -fexceptions  -DMX_COMPAT_32 -O2 -DNDEBUG  "EP.c"
     
    -> llvm-gcc -O -Wl,-twolevel_namespace -undefined error -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.9 -bundle -Wl,-exported_symbols_list,/Applications/MATLAB_R2012a.app/extern/lib/maci64/mexFunction.map -o  "EP.mexmaci64"  EP.o  -L/Applications/MATLAB_R2012a.app/bin/maci64 -lmx -lmex -lmat -lstdc++ -framework Accelerate
     
    Undefined symbols for architecture x86_64:
      "_Alloc2D", referenced from:
          _refreshInitMemory in EP.o
          _getNextLevelOfNullPlaneCurves in EP.o
      "_Alloc3D", referenced from:
          _refreshInitMemory in EP.o
      "_getDistanceMatrixFromCurveUsingMinMax", referenced from:
          _main in EP.o
      "_getDistancePointLineSegment", referenced from:
          _getDistanceMatrixFromCurve in EP.o
      "_mexFunction", referenced from:
         -exported_symbol[s_list] command line option
      "_printfMinMaxSolutions", referenced from:
          _printDataForMatlab in EP.o
      "_runApprEQP", referenced from:
          _mainAlgoOfEP in EP.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
     
        mex: link of ' "EP.mexmaci64"' failed.

    J'ai l'impression que les cases vides à la fin, c'est mauvais signe , mais je ne sais pas vraiment quoi y mettre.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Pourrais-tu nous montrer l'ensemble des messages renvoyés par MATLAB lors de la compilation ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Par défaut
    Effectivement j'ai omis une partie du message.

     Warning: Neither -compatibleArrayDims nor -largeArrayDims is selected. 
               Using -compatibleArrayDims. In the future, MATLAB will require
               the use of -largeArrayDims and remove the -compatibleArrayDims
               option. For more information, see:
               http://www.mathworks.com/help/techdo...bsflnue-1.html
    Tout le reste a déjà été cité plus haut.

    Suis-je censé voir autre chose ?

  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 317
    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 317
    Par défaut
    Il faudrait nous en dire un peu plus sur ces codes C

    Tu parles de DOS dans ton premier message. Ces codes C utilisent peut être des commandes spécifiques à Windows ?
    N'y a-t-il pas un fichier d'explications fourni avec ces codes ?

    Où les as-tu trouvés ?
    Où peut-on les télécharger ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Par défaut
    Voilà où j'ai récupéré le code :
    http://www.mathworks.com/matlabcentr...-and-modelling

    Le code C, ce n'est pas ma tasse de thé, et si tu récupères le code tu verras qu'il fait au cumulé 5000 bonnes lignes , je n'ai donc pas beaucoup d'idées sur son contenu..

    Sur le lien, il dit :
    Files:
    runEPModelSelection.m: scipt that implements the method
    The runEPModelSelection.m calls the EP.exe.
    EP.exe can be created by compliling the .c files that are included in the same folder as .m files.
    Otherwise, you can download EP.exe from https://dl.dropboxusercontent.com/u/11081708/ep.rar

    Dans le script en question, là il utilise la fonction dos ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    command = sprintf('ep %s %d data\\ epRes_signal4SegN1-noise',fileD,N); 
    dos(command)
    où ep est le nom du programme en C et epRes_signal4SegN1-noise est un fichier .txt

    En espérant que cela puisse t'éclairer.

Discussions similaires

  1. recup de données sur MAC
    Par sarastro dans le forum Apple
    Réponses: 5
    Dernier message: 12/05/2005, 15h17
  2. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08
  3. [FLASH MX 2004] Ouvrir un document .fla sur Mac
    Par tahiti bob dans le forum Flash
    Réponses: 2
    Dernier message: 12/05/2004, 17h53
  4. Exploitation de base sur un serveur Web
    Par Oz-WereWolf dans le forum Installation
    Réponses: 10
    Dernier message: 07/03/2004, 22h52
  5. [MX] autorun sur MAC
    Par tahiti bob dans le forum Flash
    Réponses: 10
    Dernier message: 07/02/2004, 15h58

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