Pages : 1
#1 Le 29/05/2010, à 10:31
- superZozo
[Résolu] compilation statique
Bonjour,
une question qui me fait un peut honte...
Je fais de la programmation en C avec code::blocks comme IDE, et je ne sais pas comment forcer le linker à utiliser les bibliothèques statiques quand il a le choix (.a .so).
Et en ligne de commande (gcc), ça donne quoi ???
-et si par hasard vous saviez avec mingw, ce serait royal !
Merci
Dernière modification par superZozo (Le 30/05/2010, à 11:14)
Hors ligne
#2 Le 29/05/2010, à 13:57
- omc
Re : [Résolu] compilation statique
Bonjour,
Une solution bourrine est de mettre le chemin complet de ta bibliothèque.
Pour des bibliothèques avec install standard cela devrait ressembler à ça:
-lTaLib -devient---> /usr/lib/TaLib/libTabLib.a
En ligne de commande, c'est tout pareil:
gcc main.c -o main -lTaLib
-devient-
gcc main.c -o main /usr/lib/TaLib/libTabLib.a
J'espère que cela t'aide un peu...
Pour minGw c'est tout pareil !
Edit: Le linker est le programme ld, donc pour le manuel "man ld", mais c'est un sacré gros machin !!
Dernière modification par omc (Le 29/05/2010, à 14:02)
Hors ligne
#3 Le 29/05/2010, à 14:04
- credenhill
Re : [Résolu] compilation statique
hello
gcc -o code -static code.c
Hors ligne
#4 Le 29/05/2010, à 19:08
- superZozo
Re : [Résolu] compilation statique
oui, j'ai un peu calé sur les manuels...
Merci pour les réponses je vais essayer ça.
Une autre petite question : est-ce-que cela a une influence par exemple sur les flags ?
ex: `pkg-config --cflags gtk +-2.0 --libs gtk+-2.0`pour la bibliotheque gtk
je suis un peu nul en compilation et j'ai pas trop compris l'intérêt de ces options...
Hors ligne
#5 Le 29/05/2010, à 22:32
- Link31
Re : [Résolu] compilation statique
Le "pkg-config --cflags" est obligatoire et très important, parce qu'il permet de réutiliser les directives de préprocesseur spécifiques à chaque paquet, qui sont celles avec lesquelles les bibliothèques ont été compilées. Ces directives doivent être identiques lorsque tu compiles ton propre programme, parce qu'elles influencent le contenu des fichiers headers qui sont compilés avec ton programme. Si ces options de compilation sont différentes, ton programme peut très bien se compiler correctement, mais planter mystérieusement à l'exécution (je me fais régulièrement avoir à cause de ça ).
De nombreux paquets n'ont pas de directives de compilation particulières en dehors des "includes", mais il ne faut pas se baser là-dessus. Et les options peuvent très bien changer entre deux versions d'une même bibliothèque.
Dernière modification par Link31 (Le 29/05/2010, à 22:34)
Hors ligne
#6 Le 30/05/2010, à 11:13
- superZozo
Re : [Résolu] compilation statique
OK! merci a tous pour vos précieuses infos.
Je vais mettre résolu. J'y vois plus clair maintenant.
Hors ligne
Pages : 1