CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Installer une librairie en C

Hindouisme
Hindouisme
Niveau 6
30 mars 2009 à 21:04:20

Bonjour,

je débute le C et je voudrais coder un programme qui nécessite une nouvelle librairie

j'ai donc téléchargé cette librairie (curl), mais je ne sais pas quoi faire des fichiers, faut-il les mettre dans le répertoire "include" de "MinGW" ? o_O

que faut-il faire d'autre ?

après j'ai entendu qu'il fallait "linker" la librairie, mais je ne sais pas du tout comment faire :snif2:

je préçise que je débute totalement dans le C et que c'est un peu difficile pour moi car je suis plus habitué à prog web (PHP)

merci :)

godrik
godrik
Niveau 30
30 mars 2009 à 22:34:56

Salut,
comment installer une lib depends de ton systeme d'exploitation et de ton compilateur.
Si tu utilise mingw, j'imagine que tu le fais depuis windows.
Il ne faut pas mettre les fichiers dans le repertoire include de mingw. En fait il ne faut jamais changer le contenu de ces repertoires. si un tuto te dit de le faire: ne le fais pas, c'est une connerie.

Il faut d'abords compiler la lib. Une fois que tu as fait cela, il devrait y avoir dans le repertoire de la lib deux repertoires important pour toi.
Le premier est 'include'.
Le deuxieme est 'lib'.
C'est deux repertoire doivent etre ajouter au repertoire utiliser par ton compilateur, le premier doit etre ajouter dans le repertoire d'inclusion du preprocesseur C grace a l'option -I du compilateur. le second doit etre ajouter dans les repertoires ou le compilateur va chercher les objets binaires grace a l'option -L.
Finalement, il faut linker la lib avec ton programme au moment de l'edition de lien, cela se fait avec l'option -l du compilateur.
A la fin la ligne de compilation doit ressembler a
gcc -I chemin/vers/le/repertoire/de/curl/include
et l'edition de lien
gcc -L chemin/vers/le/repertoire/de/curl/lib -lcurl

En fonction de quel environnement de programmation tu utilises, ca peut se faire de differente facon, consulte la documentation de ton environnement pour savoir comment faire.

dnob700
dnob700
Niveau 10
30 mars 2009 à 22:49:47

à noter que le premier -I dont parle godrik est un i majuscule tandis que le second (dans -lcurl) est un L minuscule.

Hindouisme
Hindouisme
Niveau 6
30 mars 2009 à 23:59:29

j'ai essayé de compiler la librairie, j'ai plein de .o

http://www.imagebam.com/image/91003931280981

c'est normal ou pas ? ou dois-je les mettre ?

dnob700
dnob700
Niveau 10
31 mars 2009 à 00:37:12

nulle part, il n'y a que les .a .so ou .dll qui t'intéresse après la compilation.

godrik
godrik
Niveau 30
31 mars 2009 à 02:35:55

Sous windows, mingw en genere pas de .lib ? pour la partie statique de la compilation dynamique ?

Hindouisme
Hindouisme
Niveau 6
31 mars 2009 à 08:47:27

voilà ce que j'ai fait:
j'ai ouvert "libcurl.dsp" avec code::blocks (avec "Import Visual C++ project")
je l'ai ensuite compilé en séléctionnant "Win32 DLL relase" et j'ai eu ça:

Linking dynamic library: DLL-Release\libcurl.dll
mingw32-g++.exe: DLL-Release/libcurl_imp.lib: No such file or directory
mingw32-g++.exe: DLL-Release/libcurl_imp: No such file or directory
Process terminated with status 1 (2 minutes, 22 seconds)
0 errors, 0 warnings

dans lib/DLL-Release j'ai plein de .o

ensuite j'ai essayé de faire pareil mais en séléctionnant "Win32 Lib relase"

dans lib/Lib-Release j'ai plein de .o et un .a

et j'ai ce message:

Linking static library:
C:\Users\xxxxxx\Desktop\curl-7.19.4\curl-7.19.4\li
b\LIB-Release\libcurl.a
ar.exe: creating
C:\Users\xxxxxx\Desktop\curl-7.19.4\curl-7.19.4\li
b\LIB-Release\libcurl.a
Output size is 295.24 KB
Process terminated with status 0 (2 minutes, 15 seconds)
0 errors, 0 warnings

je ne sais pas si c'est comme ça qu'il faut compiler la librairie :question:

je pensais que j'allais générer un .dll :ouch2:

désolé, je débute totalement :hum:

dnob700
dnob700
Niveau 10
31 mars 2009 à 11:43:22

"Sous windows, mingw en genere pas de .lib ? pour la partie statique de la compilation dynamique ? "

Ben voila, ça fait trop longtemps que je suis sous Linux...

Hindouisme : Manifestement le projet est mal configuré pour créer une bibliothèque dynamique, je ne peut pas trop t'aider comme ça pour résoudre ce problème. Mais le fichier .a est suffisant pour utiliser la bibliothèque, qui sera lié "statiquement" à ton programme. Ça fera des exécutable plus lourds par contre.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment