# Créer une librairie statique



## Pulsanim (12 Juin 2007)

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 (12 Juin 2007)

Pulsanim a dit:


> 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 (12 Juin 2007)

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 (12 Juin 2007)

As-tu le code source de ta librairie ?
Si oui, tu cr&#233;es un projet "BSD Dynamic Library" ou "BSD Static Library" (c'est plus trop &#224; la mode), tu y mets ton code et tu compiles.


----------



## Didier Guillion (13 Juin 2007)

Pulsanim a dit:


> 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 (13 Juin 2007)

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 (13 Juin 2007)

Pulsanim a dit:


> 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).
> 
> ...



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 (14 Juin 2007)

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 (14 Juin 2007)

Pulsanim a dit:


> 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


----------



## Didier Guillion (15 Juin 2007)

Bien recu ton projet.
Je n'arrive pas a le compiler, soit il me manque des sources, soit les chemins relatifs ne sont pas bons.

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

Cordialement


----------



## Pulsanim (16 Juin 2007)

> 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 (16 Juin 2007)

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 (16 Juin 2007)

> 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


----------

