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 :

Fonctions inlines et fichiers .lib


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 15
    Points : 18
    Points
    18
    Par défaut Fonctions inlines et fichiers .lib
    Bonjour à tous.

    Bon je pose pas mal de questions (vu que je trouve ce forum super) j'espere ne pas vous deranger, sinon dites le je me calmerai (sachant que sinon je sens bien que d'autres questions vont suivre )

    Alors voila : je viens de creer une classe assez complete (en gros j'ai refait un string adapté à mes besoins) et j'aimerais l'optimiser pour ne plus avoir à y toucher. Le prob c'est que aparement je peux pas inliner les fonctions si je fait un .lib (en fait le .lib se compile bien mais quand je l'utilise ailleurs j'ai des erreurs de link ; erreurs qui disparaissent quand je retire les "inline").

    Y a-t-il une solution ou bien il vaut mieux que je fasse carrement pas de .lib et que j'inclue le .cpp à mon projet ?

    PS : j'utilise VC++ 7 et j'ai essayé avec l'option d'optimisation qui permet de passer outre les .obj (je connais plus le nom en anglais, en francais c'est : Optimisation de l'ensemble du programme), sans difference (à part que le .lib n'a pas tout à fait la meme taille).

    D'avance, merci

    EDIT : y'a bien une fonction qui fonctionne en inline mais une seule, bizare... les autres sont surtout des surcharges d'operateurs mais pas seulement... je comprend vraiment pas

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Normalement tu ne devrais pas avoir de problème, étant donné qu'une fonction inline doit se trouver dans un en-tête et sera donc toujours disponible, bibliothèque ou pas.

    Quelle est l'erreur de link ? Comment déclares-tu tes fonctions inline ?

  3. #3
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Sur le principe de l'inline avec des .lib:

    Tu ne peux exporter une fonction inline que si son code est dans l'entête.

    Exemple de syntaxe qui ne marchera pas dans un lib:
    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
     
     
    //Ficher Machin.h
    class Machin {
     
    inline void Traitement( int arg );
     
    };
     
    //Fichier Machin.cpp
     
    void Machin::Traitement(int arg) {
     
    //du code
     
    }

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Ahhh d'accord le code doit etre dans l'entete c'est donc ça qui clochait, efectivement ca marche maintenant.

    En fait jusqu'ici j'avais quasiment pas utilisé les inlines car je ne m'étais pas penché sur l'optimisation et je n'avais donc pas rencontré ce probleme.

    En tous cas, merci bien à vous 2

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

Discussions similaires

  1. creer un fichier lib à partir d'une DLL
    Par benoit70 dans le forum MFC
    Réponses: 12
    Dernier message: 28/09/2008, 22h58
  2. Génération DLL avec 2 fichiers .lib
    Par JeanPhi dans le forum MFC
    Réponses: 7
    Dernier message: 27/08/2007, 12h02
  3. Réponses: 2
    Dernier message: 10/05/2005, 10h58
  4. Quel fichier .lib ?
    Par Neilos dans le forum DirectX
    Réponses: 10
    Dernier message: 27/01/2005, 19h16
  5. Créer un champ en fonction d'un fichier excel
    Par nberthonneau dans le forum Access
    Réponses: 8
    Dernier message: 03/11/2004, 18h02

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