Précédent   Forum du club des développeurs et IT Pro > C et C++ > C > Bibliothèques, systèmes et outils
Bibliothèques, systèmes et outils Forum d'entraide sur les bibliothèques, la programmation système et les outils en C
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 20/03/2012, 14h25   #1
jellad.tarek
Invité de passage
 
Inscription : mai 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 9
Points : 2
Points : 2
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
jellad.tarek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2012, 14h52   #2
Bousk
Modérateur
 
Homme Cyrille
Network programmer
Inscription : juin 2010
Messages : 1 542
Détails du profil
Informations personnelles :
Nom : Homme Cyrille
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Network programmer

Informations forums :
Inscription : juin 2010
Messages : 1 542
Points : 4 080
Points : 4 080
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é.
Bousk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2012, 23h08   #3
jellad.tarek
Invité de passage
 
Inscription : mai 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 9
Points : 2
Points : 2
merci mon ami pour ta réponse.
jellad.tarek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2012, 11h02   #4
souviron34
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 9 569
Détails du profil
Informations personnelles :
Âge : 55

Informations forums :
Inscription : janvier 2007
Messages : 9 569
Points : 11 849
Points : 11 849
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
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2012, 11h16   #5
Melem
Rédacteur/Modérateur
 
Avatar de Melem
 
Homme Jessee Michaël Christian Edouard
Ingénieur développement logiciels
Inscription : janvier 2006
Messages : 3 661
Détails du profil
Informations personnelles :
Nom : Homme Jessee Michaël Christian Edouard
Âge : 27
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 661
Points : 8 435
Points : 8 435
Envoyer un message via MSN à Melem
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.
Melem est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/03/2012, 13h38   #6
souviron34
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 9 569
Détails du profil
Informations personnelles :
Âge : 55

Informations forums :
Inscription : janvier 2007
Messages : 9 569
Points : 11 849
Points : 11 849
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
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2012, 16h01   #7
Melem
Rédacteur/Modérateur
 
Avatar de Melem
 
Homme Jessee Michaël Christian Edouard
Ingénieur développement logiciels
Inscription : janvier 2006
Messages : 3 661
Détails du profil
Informations personnelles :
Nom : Homme Jessee Michaël Christian Edouard
Âge : 27
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 661
Points : 8 435
Points : 8 435
Envoyer un message via MSN à Melem
J'avoue que c'est un peu c*n. Mais c'est comme ça .
Melem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2012, 16h33   #8
jellad.tarek
Invité de passage
 
Inscription : mai 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 9
Points : 2
Points : 2
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
jellad.tarek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2012, 18h17   #9
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 610
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 610
Points : 11 068
Points : 11 068
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 ?
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2012, 09h48   #10
Melem
Rédacteur/Modérateur
 
Avatar de Melem
 
Homme Jessee Michaël Christian Edouard
Ingénieur développement logiciels
Inscription : janvier 2006
Messages : 3 661
Détails du profil
Informations personnelles :
Nom : Homme Jessee Michaël Christian Edouard
Âge : 27
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 661
Points : 8 435
Points : 8 435
Envoyer un message via MSN à Melem
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 .

Citation:
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.
Melem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h11.


 
 
 
 
Partenaires

Hébergement Web