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

C++ Discussion :

détection des variables définies plusieurs fois dans des lib statiques


Sujet :

C++

  1. #1
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut détection des variables définies plusieurs fois dans des lib statiques
    Bonjour.
    Je porte un code Win32 vers android et ios avec Qt . L'architecture de l'application se base sur le chargement de dll. Malheureusement sous ios, ceci est interdit et j'ai dû tout passer en lib statique. Jusqu'ici tout va bien
    J'ai pu traiter le problème redéfinition sur la majorité des fonctions et variable globale (ce n'est pas mon choix ) commune à ces dll. Seulement il y en as encore où lors du link, à mon grand étonnement, je n'ai aucune erreur ou warning!!!
    Du coup tout compile mais lors de l'exécution y as des comportements étrange( variable réinitialisé, appel de la mauvaise fonction, ....)

    Connaissez vous une option ou une méthode avec visual, gcc ou llvm qui permet de détecter ces "variable globale"/fonction définie par plusieurs lib statique?

    merci
    Yan

  2. #2
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 391
    Points
    11 391
    Billets dans le blog
    11
    Par défaut
    C'est étonnant que sous VC tu n'aies pas de warnings à propos de symboles définis plusieurs fois (au niveau du link).
    Tu utilises quelle version de Visual Studio ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    C'est étonnant que sous VC tu n'aies pas de warnings à propos de symboles définis plusieurs fois (au niveau du link).
    Tu utilises quelle version de Visual Studio ?
    Visual 2013.
    J'ai eu des erreurs de symboles redéfinies que j'ai résolue. Mais il en reste que ne font aucune erreur. Ces variable/fonction ont leur définition identique dans ces lib statique.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    J'ai oublié de dire que les fonctions et variables globales qui posent problème correspondent à des symboles C.
    J'ai réussi à bidouiller quelques chose avec "dumpbin /LINKERMEMBER:2" qui me sort tous les symboles d'une lib .

    Çà semble bien fonctionner.
    Si quelqu'un connait une meilleur méthode, je suis preneur.

    Yan

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Si chaque DLL est vraiment indépendante, encapsuler chacune dans son propre namespace peut déjà sauver des cheveux
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Si chaque DLL est vraiment indépendante, encapsuler chacune dans son propre namespace peut déjà sauver des cheveux
    Yep.
    Malheureusement le code provenant des dll est du C et doit le rester. J'ai juste le droit de passer le cœur de l'appli en c++ si besoin.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    à l'ancienne, tu préfixes selon la DLL
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

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

Discussions similaires

  1. Avoir la liste dans l'ensemble des variables définies
    Par Jonathan.b dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 04/02/2010, 21h11
  2. Appeler dans une requête des variables définies dans une macro
    Par piflechien73 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/08/2009, 15h12
  3. [XSLT] variable définie plusieurs fois dans la même portée
    Par dhallennem dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/02/2008, 15h48
  4. [ODBC] enregistrement des résultat d'une requete dans des variables
    Par maraly dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 01/02/2007, 14h24
  5. Réponses: 2
    Dernier message: 14/06/2006, 08h53

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