|
freemaul
|
Posté le 08 Nov 2008 à 20:44
|
|

Messages : 174
GCPoints : 50213
|
Bonjour,
j'ai un petit soucis, je n'arrive pas à trouver comment créer une bibliothèque statique avec GCC sour linux depuis un fichier source écrit en C
Sous windows j'utilise Devcpp qui à un template pour les bobliothèque .a, mais sous linux je ne sait pas du tout coment faire...
"La vie n'a pas de prix, mais elle coûte chère"
|
|
Mod
|
Posté le 08 Nov 2008 à 21:00
|
|

Messages : 4954
GCPoints : 2100823
|
Bonne question, ça doit être probablement possible avec GCC même, mais fouiller dans le man du compilateur est tout simplement atroce.
Sinon, tu peux utiliser l'archiveur AR :
Code :
ar rcs libfichier.a fichier1.o fichier2.o
Si tu veux le détail des options, un petit man ar devrait te donner les informations exactes.
Il suffit donc de compiler tes .o avec GCC, puis d'utiliser AR.
Ton fichier de librairie statique doit nécessairement avoir un nom de la forme lib[NOM].a.
|
|
freemaul
|
Posté le 08 Nov 2008 à 21:16
|
|

Messages : 174
GCPoints : 50213
|
ok, merci beaucoup
j'essai de créer une librairie linux et une autre windows , avec le meme fichier .h pour les utiliser, pour pouvoir utiliser des couleurs en mode console. je sait pas si ca peut être utile ^^ mais ca m'entraine un peu
"La vie n'a pas de prix, mais elle coûte chère"
|
|
dstar
|
Posté le 08 Nov 2008 à 22:42
|
|

Messages : 56
GCPoints : 25718
|
Effectivement, il faut utiliser la commande ar sous Linux pour faire une bibliothèque statique.
La commande gcc (ou g++ pour le C++) ne permet de faire que des bibliothèque dynamiques.
Par contre, je pense que tu n'es pas obligé de commencer le nom de ta bibliothèque par le préfixe lib
, même si c'est la convention.
dstar
dstar
|
|
freemaul
|
Posté le 09 Nov 2008 à 10:46
|
|

Messages : 174
GCPoints : 50213
|
pour pouvoir l'utiliser ensuite c'est mieu de la faire commencer par lib
puisque sous gcc si tu fait -lmalib , gcc recherche le fichier libmalib.a
"La vie n'a pas de prix, mais elle coûte chère"
|
|
dstar
|
Posté le 09 Nov 2008 à 11:32
|
|

Messages : 56
GCPoints : 25718
|
Citation :pour pouvoir l'utiliser ensuite c'est mieu de la faire commencer par lib
puisque sous gcc si tu fait -lmalib , gcc recherche le fichier libmalib.a
Exact !
dstar
dstar
|
|
Darktib
|
Posté le 09 Nov 2008 à 12:56
|
|

Messages : 4017
GCPoints : 347288
|
Pour gcc tu peux aussi lui donner le nom complet de la lib, et ca marche quand meme (genre abc.a, etc...)
Mais la convention est beaucoup mieux car les fichiers sont reconnaissables plus facilement.
|