• Bonjour Visiteur. Bienvenue sur les nouveaux forums de MacGeneration. La peinture est encore fraiche, quelques boulons doivent être resserrés, plus d’informations demain !

Project Builder et librairies

Didier Guillion

Membre d’élite
Club MacG
20 Juillet 2001
3 244
164
57
Toulouse
www.myriad-online.com
Bonjour,

J'ai compilé la dernière version de libcurl et je me retrouve avec deux fichiers d'environ 1Mo :
libcurl.a
libcurl.2.0.2.dylib

Avec l'un ou l'autre, mon projet, qui utilise libcurl, ne prends pas un Ko, bien que les appels aux fonctions marchent ...
Cela m'inquiete, car je craint que les librairies ne soient pas incluse dans mon executable mais fasse seulement référence a du code externe.
Si c'est vrai, on peut supposer que mon appli ne fonctionnera que sur mon poste, ce qui n'est pas le but recherché.

Quelqu'un aurait il des explications a me donner sur les librairies de ce type ?

Cordialement
 

SuperCed

Membre d’élite
Club MacG
20 Juin 2001
1 167
49
40
superced.rb38.eu
J'ai eu l'occasion de travailler avec des .a, c'était une librairie Apple qui tournait dans l'environnement noyau et qui convertissait des sons (24->32Bits, ré-échantillonage, etc.). A priori, quand tu fais une appli et que tu inclues une librairie (.a), le code se met dans l'éxécutable.
Normalement, si tu as correctement ajouté la librairie en question dans ton projet, elle devrait être insérée dans l'exécutable même et non dans le package.

Tu devrais tester ton soft sur une autre machine mais a priori, il ne devrait pas y avoir de problème, les .a sont bien intégrés dans l'éxécutable et non en externe.

C'est bizare ton histoire de poids qui ne change pas quand tu ajoutes la librairie. Méfie toi de la taille indiquée par le système, mais ça, tu dois déjà le savoir.
 

Didier Guillion

Membre d’élite
Club MacG
20 Juillet 2001
3 244
164
57
Toulouse
www.myriad-online.com
Merci de ta réponse,

J'ai testé sur une autre systeme, et en effet avec le .a , le programme ne se lance meme pas.

Je soupconne que cela provient des options du Makefile fourni avec LibCurl qui ne doit pas etre correct.

J'ai contourné le probleme en incluant les sources de la librairie dans mon projet (je sais, beurk) et la ca marche nickel.

Cordialement
 

iconless

Membre junior
18 Décembre 2003
10
0
Visiter le site
Tu peux linker ton application avec la dylib, étant une librairie partagée, si tu lances ton application sur une autre machine qui n'a pas cette librairie, ca ne marchera pas.

Si tu compiles ton application en utilisant la libcurl.a, elle sera présente dedans (compilation statique). Ton application fonctionnera sur toutes les machines.

J'espère avoir été assez clair.

Thierry
iconless.com