Linux compilation bibliothèque

freemaul Message lu Posté le 08 Nov 2008 à 20:44 Bulle
Avatar de freemaul
Explorateur

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 Message lu Posté le 08 Nov 2008 à 21:00 Bulle
Avatar de Mod
Webmaster

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 Message lu Posté le 08 Nov 2008 à 21:16 Bulle
Avatar de freemaul
Explorateur

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 Message lu Posté le 08 Nov 2008 à 22:42 Bulle
Avatar de dstar
Explorateur

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 Message lu Posté le 09 Nov 2008 à 10:46 Bulle
Avatar de freemaul
Explorateur

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 Message lu Posté le 09 Nov 2008 à 11:32 Bulle
Avatar de dstar
Explorateur

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 Message lu Posté le 09 Nov 2008 à 12:56 Bulle
Avatar de Darktib
Membre Ultime

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.

Répondre
GameCorp - Site d'apprentissage et d'entraide à la création de jeux vidéo.
XHTML Valid 1.1 - Page générée en 0.0302 secondes