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 :

Compilation d'un projet récupéré


Sujet :

Autres éditeurs

  1. #1
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut Compilation d'un projet récupéré
    Bonjour,

    Mes connaissances en C++ se limitent à la programmation "console", je n'ai jamais fais d'interface graphique ou utilisé de fichier de ressource.

    Je suis sous Windows XP et je cherche à compiler VNC (sources http://www.realvnc.com/ )

    J'ai télécharger le "Borland C++ Compiler 5.5" ainsi que "Dev-C++ 4"

    Etant donné qu'il y a des tutoriel sur le compilateur Borland j'ai commencé avec ce compilateur. J'ai utiliser la ligne suivante pour compiler le programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bcc32 -IG:\Borland\bcc55\include;F:\i\vnc-4.0-winsrc -LG:\Borland\bcc55\lib winvnc
    et les derniers messages d'erreurs que je recois sont les suivants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    winvnc.cpp:
    Warning W8027 F:\i\vnc-4.0-winsrc\rdr/InStream.h 86: Functions containing while are not expanded inline
    [8 autres warning comme ça]
    Warning W8026 F:\i\vnc-4.0-winsrc\rfb/UpdateTracker.h 57: Functions taking class-by-value argument(s) are not expanded inline in function ClippedUpdateTracker::set_clip_region(const Region)
    [autres warning]
    Error E2312 F:\i\vnc-4.0-winsrc\winvnc/AddNewClientDialog.h 32: 'Dialog' is not an unambiguous base class of 'AddNewClientDialog' in function AddNewClientDialog::AddNewClientDialog()
    [autres erreurs ...]
    comme je ne voyais pas où est le problème j'ai ensuite essayé avec DEV C++
    je suis d'abord tombé sur des fichiers manquant : "Accctrl.h" et "aclapi.h". ils sont dans le "include" de Borland donc je les ai copié dans le répertoire "include" de DEV C++
    et là je recois des message "syntax error before `__attribute__'" dans le fichier "aclapi.h". ce fichier contient ce genre de code
    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
     
    extern "C" {
     
    WINADVAPI
    DWORD
    WINAPI
    SetEntriesInAclA(
        IN  ULONG               cCountOfExplicitEntries,
        IN  PEXPLICIT_ACCESS_A  pListOfExplicitEntries,
        IN  PACL                OldAcl,
        OUT PACL              * NewAcl
        );
    WINADVAPI
    DWORD
    WINAPI
    SetEntriesInAclW(
        IN  ULONG               cCountOfExplicitEntries,
        IN  PEXPLICIT_ACCESS_W  pListOfExplicitEntries,
        IN  PACL                OldAcl,
        OUT PACL              * NewAcl
        );
    #ifdef UNICODE
    #define SetEntriesInAcl  SetEntriesInAclW
    #else
    #define SetEntriesInAcl  SetEntriesInAclA
    #endif // !UNICODE
     
    ...[plusieurs fois cette présentation avec des autres noms]
    et mes erreurs se trouvent sur les lignes qui contiennent "WINAPI"

    je remercie d'avance toutes les personnes qui essayeront de me faire comprendre ce qui ne va pas :-)

  2. #2
    Membre habitué
    Inscrit en
    Novembre 2002
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 120
    Points : 125
    Points
    125
    Par défaut
    je suis d'abord tombé sur des fichiers manquant : "Accctrl.h" et "aclapi.h". ils sont dans le "include" de Borland donc je les ai copié dans le répertoire "include" de DEV C++
    Ca marche pas comme ça. Il y a des conventions différentes pour les compilateurs. Ainsi, tu ne pourra jamais avoir les librairies lib*.a pour GCC. Reste avec Borland.

    Error E2312 F:\i\vnc-4.0-winsrc\winvnc/AddNewClientDialog.h 32: 'Dialog' is not an unambiguous base class of 'AddNewClientDialog' in function AddNewClientDialog::AddNewClientDialog()
    Montr l'implémentation de AddNewClientDialog::AddNewClientDialog().

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par ShootDX
    Ca marche pas comme ça. Il y a des conventions différentes pour les compilateurs. Ainsi, tu ne pourra jamais avoir les librairies lib*.a pour GCC. Reste avec Borland.
    d'accord c'est noté

    Citation Envoyé par ShootDX
    Montr l'implémentation de AddNewClientDialog::AddNewClientDialog().
    voila ce que j'ai dans AddnewClientDialog.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <winvnc/resource.h>
    #include <rfb_win32/Dialog.h>
     
    namespace winvnc {
     
      class AddNewClientDialog : public rfb::win32::Dialog {
      public:
        AddNewClientDialog() : Dialog(GetModuleHandle(0)) {}
    ...
      };
    };
    et dans "rfb_win32/Dialog.h"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    namespace rfb {
      namespace win32 {
        class Dialog {
        public:
     
          Dialog(HINSTANCE inst);
    ...
     
        };
      };
    };

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2002
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 120
    Points : 125
    Points
    125
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddNewClientDialog() : Dialog(GetModuleHandle(0)) {}
    Le pb vient de là: il faut spécifier le nom entier de la classe (ici avec le namespace):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddNewClientDialog() : rfb::win32::Dialog(GetModuleHandle(0)) {}
    Mais comme MSVC râle sur ce genre de construction, il faut passer par un alias déclaré en private dans AddNewClientDialog.

    Alias:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef rfb::win32::Dialog Super;
    Constructeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddNewClientDialog() : Super(GetModuleHandle(0)) {}

  5. #5
    fd
    fd est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut
    essaie voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    namespace winvnc { 
     
      class AddNewClientDialog : public rfb::win32::Dialog { 
      public: 
        AddNewClientDialog() : Dialog(GetModuleHandle((HINSTANCE) 0)) {} 
    ... 
      }; 
    };

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    une information que j'ai oublié de donner : l'appli a été créée avec Microsoft Visual C++ 6.0

    Du changement : en réinstallant Borland sur ma machine actuelle (Windows2000) j'ai modifié mon fichier de compilation car à la base les sources étaient dans des fichier .cxx renommées en .ccp
    maintenant j'ai rajouté "-P-cxx" à bcc32 et j'obtiens les messages suivants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland
    winvnc.cxx:
    Error E2141 c:\temp\vnc-4.0-winsrc\rdr/types.h 22: Declaration syntax error
    Error E2303 c:\Borland\bcc55\include\stdio.h 154: Type name expected
    Error E2293 c:\Borland\bcc55\include\stdio.h 175: ) expected
    Error E2141 c:\temp\vnc-4.0-winsrc\rdr/Exception.h 25: Declaration syntax error
    Fatal F1003 c:\Borland\bcc55\include\stdcomp.h 5: Error directive: Must use C++ for STDCOMP.H
    *** 5 errors in Compile ***
    or si je mets "-Pcxx" j'obtiens les messages d'erreurs de mon 1er message

    d'après ce que j'ai lu dans la doc il ne devrait pas y avoir de différences dans mon cas puisque j'ai seulement des .h et de .cxx
    comment choisir le bonne option de compilation ?

    [EDIT]
    Après le repas ca va toujours mieux
    J'ai relu la doc et finallement -Pcxx est pas mal !
    [/EDIT]

  7. #7
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    j'ai rajouté l'espace des noms ... ca fonctionne
    j'avais ensuites des autres erreurs aussi résolues donc c'est bon

    merci ShootDX

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

Discussions similaires

  1. [MAC]Compilation d'un projet
    Par LordBob dans le forum SDL
    Réponses: 2
    Dernier message: 31/05/2007, 11h57
  2. Problème a la compilation d'un projet Qt
    Par _LVEB_ dans le forum Qt
    Réponses: 9
    Dernier message: 24/03/2007, 16h53
  3. Compilation d'un Projet Visual Basic en ligne de commande
    Par Nico+10) dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 16/03/2007, 09h37
  4. Compilation d'un projet
    Par bebert63 dans le forum Outils
    Réponses: 4
    Dernier message: 17/01/2006, 14h48
  5. [Exécutable]Compilation d'un projet en executable
    Par romano21 dans le forum Général Java
    Réponses: 5
    Dernier message: 26/10/2005, 10h42

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