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 :

Problème de compilation fichier


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Problème de compilation fichier
    Bonjour

    Je suis actuellement sur un programme qui permet d'utiliser la fonction gpib sous matlab.
    Malheureusement elle date de la version 4 de MATLAB et je dispose de la v7.
    J'ai réussi a modifier les anciennes fonctions par les nouvelles mais lors de la compilation
    pour créer le fichier gpib.mex a partir de gpib.c il m'affiche 2 erreurs importante qui sont :
    lcc preprocessor error: .\gpib.h:1 gpib.c:21 Macro redefinition of WIN32
    et
    lcc preprocessor error: C:\manip\R2007a\sys\lcc\include\win.h:13510 C:\manip\R2007a\sys\lcc\include\windows.h:4 .\gpib.h:3 gpib.c:21 Macro redefinition of EXTERN_C
    .

    voici le fichier gpib.h ou sont situé ses erreurs.
    #define WIN32

    #include <windows.h>
    #include "ni488.h" /* part of National Instruments GPIB distribution */
    #define HUGE
    #define ibevent(x,y) NOSUPPORT
    #define ibllo(x) NOSUPPORT
    #define ibsgnl(x,y) NOSUPPORT

    typedef int ITYPE;




    Je voudrai savoir ce qu il faut faire avec windows.h et WIN32 et surtout qu'est ce que c'est que le "lcc preprocessor ...... Macro redefinition ...."

    Merci

  2. #2
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Salut,

    Macro redefinition
    Cela veut dire que tu as deux fois le même include pour des #define.
    Vérifie que cela n'est pas le cas, par exemple à ma connaissance <windows.h> inclut déjà WIN32.

    De plus essaye de placer des blocs conditionnels du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifndef ...
    #define ...
    #endif
    A+.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    merci pour l'explication

    mais pour le " lcc preprocessor error: C:\manip\R2007a\sys\lcc\include\win.h:13510 C:\manip\R2007a\sys\lcc\include\Windows.h:4 .\gpib.h:3 gpib.c:21 Macro redefinition of EXTERN_C "

    j'ai une imcompréhension total car EXTERN_C qui est definie par win.h n'est redefinit nul par dans les autres library.

    il y a une possibilité : dans les library <string.h> et <stdlib.h> n'y a t'il pas déja une definition de EXTERN_C ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    ça y es j'ai réussi à règner ce problème en inversant la place de windows.h avec stdio.h mais voici le moment du souci ultime :

    c:\docume~1\hpib\locals~1\temp\mex_ab905fd5-4ec8-432f-cca8-084bd680fc16\gpib.obj .text: undefined reference to '_ibsta'

    voici le problème qui m'arrive maintenant que le programme soit écrit correctement .
    ibsta n'ai pâs la seule dans ce cas j'en ai toute une liste mais je vous l'épargne .

    Tout d'abord lors de la compilation la fonction mex il est pas censer placer tout sa dans temp ? et si c'est le cas pourquoi il ne les trouve pas ?

  5. #5
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    il y a une possibilité : dans les library <string.h> et <stdlib.h> n'y a t'il pas déja une definition de EXTERN_C
    Oui, c'est fort possible que les deux possède cette définition (mais "sécurisées" par le bloc ifndef), en particulier les bibliothèque de national instrument ont ces définitions.
    Mais dans le message d'erreurs tu as les lignes où les redéfinitions ont lieu.
    C:\manip\R2007a\sys\lcc\include\Windows.h:4
    et
    C:\manip\R2007a\sys\lcc\include\win.h:13510

    Donc je dirais que le mieux pour toi c'est de poser un bloc ifndef dans le win.h, ligne 1350.

    [Edit]Quels sont tes options de compilation ?[/Edit]

    A+.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    voila ce que je fait :
    mex -O gpib.c

  7. #7
    Membre averti

    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 352
    Points
    352
    Par défaut
    Citation Envoyé par Riowen Voir le message
    c:\docume~1\hpib\locals~1\temp\mex_ab905fd5-4ec8-432f-cca8-084bd680fc16\gpib.obj .text: undefined reference to '_ibsta'
    Tu es probablement suppose lier ton programme a une librairie (regarde s'il y a des fichiers .lib sont fournis?) voire option -l et -L de 'mex'.

    Salutations,

    Greg

Discussions similaires

  1. [MEX] Problème pour compiler plusieurs fichiers
    Par Leiloche dans le forum MATLAB
    Réponses: 3
    Dernier message: 28/10/2008, 14h57
  2. Problème de compilation d'un fichier son
    Par dreanlin dans le forum Dev-C++
    Réponses: 2
    Dernier message: 16/10/2007, 16h11
  3. Réponses: 3
    Dernier message: 12/07/2006, 23h21
  4. Réponses: 9
    Dernier message: 04/03/2006, 21h36
  5. [Fichier I/O] Problème de compilation.
    Par Roming22 dans le forum C++
    Réponses: 6
    Dernier message: 04/10/2004, 00h09

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