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

Autres éditeurs Discussion :

Comment gérer les erreurs de la compilation sous linux ?


Sujet :

Autres éditeurs

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut Comment gérer les erreurs de la compilation sous linux ?
    Bonjour,

    j'ai réalisé une application console avec Borland C++, et je voudrai la compiler sous linux.

    Bien entendu, je l'ai un peu adaptée pour qu'elle puisse fonctionner sous linux, mais lorsque j'essaie de la compiler, j'ai plusieurs erreurs du type :

    'HANDLE' was not declared in this scope


    J'ai cherché sur le net à quoi correspondaient ces erreurs mais je n'ai rien trouvé !!!



  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Un HANDLE est un type défini dans winNT.h par Il est utilisé pour manipuler des objets sous l'œil de l'OS.

    Reste il des includes malvenu dans votre projet ?
    Pouvez vous poster une des ligne levant l'erreur ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut
    Voici un screen des erreurs de compilation :



    Un HANDLE est un type défini dans winNT.h par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    typedef void * HANDLE
    Là, je ne comprend pas la modification que je dois effectuée ???


  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par c_boireau Voir le message
    Un HANDLE est un type défini dans winNT.h par
    Là, je ne comprends pas la modification que je dois effectuer ???
    Vous tentez d'utiliser un type windows dans un programme linux... c'est impossible
    • Ligne 11 : WinNT.h aucun fichier ou répertoire de ce type, c'est un fichier windows.
    • Ligne 29 : HANDLE non défini, c'est un type windows ( je suppose que le ligne est HANDLE dhl; ).
    • Ligne 44 : Vous utilisez CreateFile, c'est une fonction windows, utilisez plutôt fopen qui est standard ou la classe fstream si vous travaillez en c++.
    • Ligne 49 : fonction Sleep : exclusivement windows, utilisez sleep (attention, les unités ne sont pas les mêmes...)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut
    C'est d'accord, donc il faut que je remplace la fonction "CreateFile" (qui me sert à ouvrir le port série) par la fonction "fopen" ?

    Lorsque j'aurai modifié tout ça, ça fonctionnera ?


  6. #6
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par c_boireau Voir le message
    C'est d'accord, donc il faut que je remplace la fonction "CreateFile" (qui me sert à ouvrir le port série) par la fonction "fopen" ?

    Lorsque j'aurai modifié tout ça, ça fonctionnera ?
    Oulà non !

    Quand on regarde le log de compilation, on se rend compte qu'il y a d'autres fonctions typiquement windows qui ne peuvent pas être utilisées avec linux.

    De plus quand on a trouvé l'équivalent d'une fonction windows en linux, celle ci peuvent avoir des comportement légèrement différents, ce qui peut avoir des conséquences importantes.

    Exemple : CreateFile permet d'ouvrir un fichier avec windows, en linux, on a fopen pour ouvrir un fichier... mais open réalise aussi cette opération. Une différence entre ces fonctions est que fopen bufferise les données pas open.

    Dans le cas particulier d'une ouverture de port COM, c'est plutôt open(...) qu'on utilisera.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/05/2013, 01h29
  2. [Fortran 90] Comment gérer les erreurs Run Time ?
    Par Truth dans le forum Fortran
    Réponses: 5
    Dernier message: 13/11/2008, 16h46
  3. [bash][ftp] comment gérer les erreurs
    Par Merfolk dans le forum Linux
    Réponses: 2
    Dernier message: 31/07/2008, 09h17
  4. [Débutant]Comment gérer les erreurs simplement ?
    Par nahouto dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2006, 21h55

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