Créer une librairie statique

Pulsanim

Membre junior
16 Mars 2007
19
0
Bonjour

J'ai créé une librairie statique (.lib) sous Windows mais mon mac ne la reconnaît pas (CodeWarrior ne veut pas l'insérer dans son projet) . Alors je me dis pourquoi ne pas tenter l'aventure. Le problème est que je ne sais pas configurer XCode pour faire ceci. Ni CodeWarrior non plus.

Si quelqu'un pouvait me donner le lien de quelques tutoriaux ou me donner les étapes à suivre , merci d'avance.
 

Didier Guillion

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

J'ai créé une librairie statique (.lib) sous Windows mais mon mac ne la reconnaît pas (CodeWarrior ne veut pas l'insérer dans son projet) . Alors je me dis pourquoi ne pas tenter l'aventure. Le problème est que je ne sais pas configurer XCode pour faire ceci. Ni CodeWarrior non plus.

Si quelqu'un pouvait me donner le lien de quelques tutoriaux ou me donner les étapes à suivre , merci d'avance.

As tu recompilé ta librairie sur Mac ?

Cordialement
 

Pulsanim

Membre junior
16 Mars 2007
19
0
Justement c'est ce que je souhaite faire, recompiler la librairie sous mac.
Mais je ne sais pas paramétrer un début de librairie sous XCode ni CodeWarrior.
Pour ce dernier soft, je pense qu'aucun de vous ne l'utilise, il est trop vieux.

Queele est la marche à suivre ?
 

ntx

Vénérable sage
Club MacG
15 Octobre 2004
12 073
376
92
As-tu le code source de ta librairie ?
Si oui, tu crées un projet "BSD Dynamic Library" ou "BSD Static Library" (c'est plus trop à la mode), tu y mets ton code et tu compiles.
 

Didier Guillion

Membre d’élite
Club MacG
20 Juillet 2001
3 244
164
59
Toulouse
www.myriad-online.com
Justement c'est ce que je souhaite faire, recompiler la librairie sous mac.
Mais je ne sais pas paramétrer un début de librairie sous XCode ni CodeWarrior.
Pour ce dernier soft, je pense qu'aucun de vous ne l'utilise, il est trop vieux.

Queele est la marche à suivre ?

Sous CW, File>New>Empty project

Ensuite, options du projet, Target>PPC target>Project type>Library

Cordialement
 

Pulsanim

Membre junior
16 Mars 2007
19
0
Merci Didier , j'ai réussi à compiler la librairie avec CW.

J'ai un soucis dans les fonctions que j'appelle. Je ne l'ai pas avec la librairie sous Windows. Le code est le même pour les 2 librairies (j'ai fait un copier-coller).

J'ai 2 erreurs de liens:
- link error : undefined : '_current_local' {data}
- link error : undefined : '_msl_assertion_failed' {code}

Je n'appelle jamais ces variables, je ne sais pas d'où elles sortent

Auriez-vous une idée ?
 

Didier Guillion

Membre d’élite
Club MacG
20 Juillet 2001
3 244
164
59
Toulouse
www.myriad-online.com
Merci Didier , j'ai réussi à compiler la librairie avec CW.

J'ai un soucis dans les fonctions que j'appelle. Je ne l'ai pas avec la librairie sous Windows. Le code est le même pour les 2 librairies (j'ai fait un copier-coller).

J'ai 2 erreurs de liens:
- link error : undefined : '_current_local' {data}
- link error : undefined : '_msl_assertion_failed' {code}

Je n'appelle jamais ces variables, je ne sais pas d'où elles sortent

Auriez-vous une idée ?

Voici comme resoudre ce probleme avec CW : un moyen est proposé de rechercher dans quelle librairie du compiltateur se trouve une définition et donc celle qui manque à ton projet:

Applique
- Search>Find in files
- Selectionne "New file set"
- Fait glisser dans la fenetre le contenu complet de "Metrowerk (ta version)/Other metrowerks tools/Find library/Find library files"
- Tu peut sauvegarder ce set de fichier pour plus tard.

Ensuite, tape par exemple "msl_assertion_failed", et recherche.
La librairie qui te manque est MSL_ALL_CARBON_D ou MSL_C_CARBON

Cordialement
 

Pulsanim

Membre junior
16 Mars 2007
19
0
Effectivement ces variables appartiennet à MSL_All_Carbon.
Quand j'essaie d'insérer la lib dans le projet (ctrl sur le dossier Files/lib), elle est inaccessible. Comment faire ?
Je suis de plus étonné que par défaut CW n'intègre pas toutes ces librairies dans les projets.
 

Didier Guillion

Membre d’élite
Club MacG
20 Juillet 2001
3 244
164
59
Toulouse
www.myriad-online.com
Effectivement ces variables appartiennet à MSL_All_Carbon.
Quand j'essaie d'insérer la lib dans le projet (ctrl sur le dossier Files/lib), elle est inaccessible. Comment faire ?
Je suis de plus étonné que par défaut CW n'intègre pas toutes ces librairies dans les projets.

Cela depends de quel modèle tu demarre. Si pour ton appli tu choisit un modele par exemple "C Carbon" toutes les librairies sont incluses (pour peu que ton installation de CW soit complete)

Si tu veut tu peut m'envoyer par email une archive de ton projet complet, j'y jeterait un oeil.

Cordialement
 

Pulsanim

Membre junior
16 Mars 2007
19
0
Je n'arrive pas a le compiler, soit il me manque des sources, soit les chemins relatifs ne sont pas bons.

Ok je t'envois par MP un nouveau lien. J'ai changé la racine du projet, cela devrait aller mieux. Il faut juste refaire le lien vers la libraire statique.

Mais avant d'aller plus loin, je vois que dans le sous-projet Carbon Debug, tu n'as pas la librairie MSL_ALL_CARBON.lib

Où trouver cette librairie dans CW ? Faut-il en créer une à partir des codes Find files, et dans ce cas faut-il compiler toutes les autres de ce répertoire ?
 

Didier Guillion

Membre d’élite
Club MacG
20 Juillet 2001
3 244
164
59
Toulouse
www.myriad-online.com
Ok, ca linke de mon coté sans erreur.

A ton projet "Script.mcp" cible "Carbon debug" j'ai ajouté :

CarbonLib (Metrowerk/Mac OS Support/Universal/Libraries/Stub librairies)
MSL_ALL_Carbon_D.lib (Metrowerk/Mac OS Support/Runtime/Runtime PPC/Runtime Mac OS/Libs)

Je ne peut te renvoyer le projet car j'utilise la version 10 de CW et les projets ne marcherons pas chez toi.

Cordialement
 

Pulsanim

Membre junior
16 Mars 2007
19
0
CarbonLib (Metrowerk/Mac OS Support/Universal/Libraries/Stub librairies)
MSL_ALL_Carbon_D.lib (Metrowerk/Mac OS Support/Runtime/Runtime PPC/Runtime Mac OS/Libs)

Ok je regarde cela dès lundi, je n'ai pas de mac sur moi. "_D" c'est pour debug ?

Je ne peut te renvoyer le projet car j'utilise la version 10 de CW et les projets ne marcherons pas chez toi.

C'est pas grave. Vérifie que tu as un fichier .x32 dans Carbon Debug. Il doit faire environ 150 ko.

Merci