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

Bibliothèques, systèmes et outils C Discussion :

créer un fichier .lib avec code::blocks


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut créer un fichier .lib avec code::blocks
    bonjour
    je travaille sous win7 64 bits

    comment faire pour créer un fichier dll et sa librairie ".lib" et non pas ".a"
    avec code::blocks (gcc compiler).

    le dll fonctionne à 100% mais je n'ai pas le .lib

    le ficher .lib sera utilisé dans autres IDE comme visual c++ de microsoft

    1000 merci

  2. #2
    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
    Bonjour,

    je ne crois pas C::B capable de créer des .lib.
    Les .lib sont spécifiques Visual Studio, il faut compiler la bibliothèque avec VS pour avoir le .lib associé.
    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.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    merci mon ami pour ta réponse.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Il n'y a que 2 types de biblothèques généraux ;

    • les biblothèques statiques (.a)

    • les biblothèques dynamiques (.so sous unixoides, DLL sous Windows)



    Comme on te l'a dit, ".lib" n'est pas une extension générale, mais d'un outil particulier..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par jellad.tarek Voir le message
    comment faire pour créer un fichier dll et sa librairie ".lib" et non pas ".a"
    avec code::blocks (gcc compiler).
    Pour avoir un .lib il suffit d'utiliser un compilateur autre que gcc, c'est-à-dire Visual C++, Borland C++ Compiler ou encore Lcc-Win32. Mais ce n'est pas l'extension le vrai problème, c'est le format de fichier. Une bibliothèque gcc (.a) n'a pas le format qu'une bibliothèque (.lib) Visual C++, qui n'a pas non plus le même format qu'une bibliothèque (.lib) Borland, qui n'a pas non plus le même format qu'une bibliothèque (.lib) Lcc-Win32, etc. Ce que cela signifie en pratique ? Tu ne peux par exemple pas utiliser un .lib généré par Visual C++ avec le compilateur de Borland, et vice versa. Les libs générés par Visual C++ ne sont donc utilisables qu'avec Visual C++. Valable pour tous les autres compilateurs. Bien entendu, il s'agit d'une règle générale mais rien n'empêche un constructeur particulier de supporter plusieurs formats, mais cela est vraiment très rare. Tu peux toujours te tourner vers les outils de conversion si besoin.

    Citation Envoyé par souviron34
    Comme on te l'a dit, ".lib" n'est pas une extension générale, mais d'un outil particulier..
    Quoique l'extension la plus répandue sous Windows est quand même .lib, il n'y a que gcc qui utilise l'extension .a.

    En outre, s'il n'y a que deux types de libs sous *n*x (.a et .so), il y en a 3 sous Windows :

    - lib statiques (.lib) : semblables aux .a d'unix.
    - lib d'importation (.lib également) : à utiliser pour se lier avec une DLL donnée. Malgré la même extension, ça n'a rien à voir avec un .lib statique.
    - lib dynamiques (.dll) : sembables aux .so d'unix.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Melem Voir le message
    Quoique l'extension la plus répandue sous Windows est quand même .lib, il n'y a que gcc qui utilise l'extension .a.

    En outre, s'il n'y a que deux types de libs sous *n*x (.a et .so), il y en a 3 sous Windows :

    - lib statiques (.lib) : semblables aux .a d'unix.
    - lib d'importation (.lib également) : à utiliser pour se lier avec une DLL donnée. Malgré la même extension, ça n'a rien à voir avec un .lib statique.
    - lib dynamiques (.dll) : sembables aux .so d'unix.

    Dont acte .. Mea Culpa

    Vraiment, W$ c'est de la m.rde pour la portabilité...

    Et quand je vois le point 2 de ta liste... Heruseuement que je ne développe quasi jamais sous Win..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  7. #7
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    J'avoue que c'est un peu c*n. Mais c'est comme ça .

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    mais les amis j'ai importé un .lib (vc++ 2010) sous
    code::blocks (gcc) et ça marché sans problème

    en plus j'ai essayé d'importer un .a (gcc) sous vc++ et ça marche
    aussi

  9. #9
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Citation Envoyé par Melem Voir le message
    - lib statiques (.lib) : semblables aux .a d'unix.
    - lib d'importation (.lib également) : à utiliser pour se lier avec une DLL donnée. Malgré la même extension, ça n'a rien à voir avec un .lib statique.
    - lib dynamiques (.dll) : sembables aux .so d'unix.
    D'ailleurs, puisque tu en parles et puisque ça fait un moment également que je n'ai pas non plus codé sous Windows, est-ce que les deux versions de « *.lib » sont vraiment deux types de fichiers complètement différents, ou est-ce que la « lib d'importation » est en fait une bibliothèque statique ordinaire mais ne contenant que les informations requises à la liaison à une bibliothèque dynamique ?

  10. #10
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par jellad.tarek Voir le message
    mais les amis j'ai importé un .lib (vc++ 2010) sous
    code::blocks (gcc) et ça marché sans problème

    en plus j'ai essayé d'importer un .a (gcc) sous vc++ et ça marche
    aussi
    Ah oui c'est vrai, gcc et Visual C++ supportent chacun les .a gcc et les .lib Visual C++, mais ils ne génèrent respectivement que des .a et des .lib. Encore un truc c*n .

    est-ce que les deux versions de « *.lib » sont vraiment deux types de fichiers complètement différents, ou est-ce que la « lib d'importation » est en fait une bibliothèque statique ordinaire mais ne contenant que les informations requises à la liaison à une bibliothèque dynamique ?
    Ben, les .obj et .lib de Windows sont tous au format COFF de toute façon, donc il y a forcément une structure commune. La différence se situe surtout au niveau du contenu.

Discussions similaires

  1. Lib ZMQ avec CODE BLOCKS sous Windows
    Par nanosoft dans le forum C
    Réponses: 4
    Dernier message: 08/06/2015, 21h45
  2. Comment créer un fichier binaire avec ces codes
    Par zslovefr dans le forum C++/CLI
    Réponses: 1
    Dernier message: 02/07/2009, 20h34
  3. [FPDF] Créer un fichier pdf avec PHP
    Par picoloto dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 24/09/2008, 22h05
  4. créer un .exe avec code::blocks
    Par acacia dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 17/02/2008, 18h55
  5. [J2ME] Créer un fichier jad avec jbuilder
    Par serwol dans le forum JBuilder
    Réponses: 1
    Dernier message: 18/04/2006, 13h44

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