Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Mac
Mac Avant de poster: Lire La FAQ Mac; Voir la page Outils; Voir les tutoriels.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 12/11/2009, 01h31   #1
Membre à l'essai
 
Inscription : mars 2007
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 32
Points : 21
Points : 21
Par défaut Link Framework SFML avec CMake

Bonjour,

j'ai un souci de Link...

En effet pour un projet multiplateforme (Linux, Mac) en C++ il a été intéressant (cf changement de plateforme, IDE etc) d'utiliser CMake.
Comme la librarie choisit est la SFML et qu nous n'avions pas de souci pour lancer des projets sur les différentes plateformes séparément on aurait pu croire que passer a CMake serait facile, mais..

Si lier une lib sur linux est d'une limpidité sans pareil pour moi (-I /usr/include/SFML... et dossier de lib /usr/lib/) j'ai été impressioné par mon incapacité à le faire sur Mac.

Sous mac, on peut apparemment mettre les lib proprement en partagé entre les user de la même facon que sur une plateforme UNIX, mais on peut aussi utiliser des FrameWorks.

C'est super a priori les Framework, mais je suis incapable de lier la dite lib (j'ai essayé /Librairy/Frameworks/ comme dossier, mais ca ne suffit pas)

Comment fait-on SVP ??

merci d'avance
dzada est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2009, 11h55   #2
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 252
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 252
Points : 2 682
Points : 2 682
Citation:
Envoyé par dzada Voir le message
Bonjour,

j'ai un souci de Link...

En effet pour un projet multiplateforme (Linux, Mac) en C++ il a été intéressant (cf changement de plateforme, IDE etc) d'utiliser CMake.
Comme la librarie choisit est la SFML et qu nous n'avions pas de souci pour lancer des projets sur les différentes plateformes séparément on aurait pu croire que passer a CMake serait facile, mais..

Si lier une lib sur linux est d'une limpidité sans pareil pour moi (-I /usr/include/SFML... et dossier de lib /usr/lib/) j'ai été impressioné par mon incapacité à le faire sur Mac.

Sous mac, on peut apparemment mettre les lib proprement en partagé entre les user de la même facon que sur une plateforme UNIX, mais on peut aussi utiliser des FrameWorks.

C'est super a priori les Framework, mais je suis incapable de lier la dite lib (j'ai essayé /Librairy/Frameworks/ comme dossier, mais ca ne suffit pas)

Comment fait-on SVP ??

merci d'avance
les librairies dynamiques "pure Unix" ne doivent pas être converties en Framework…
vous pouvez vous amuser à le faire mais ce n'est pas nécessaire… et pour faire un Framework correctement, vous avez tout intérêt à utiliser XCode… un Framework est un bundle qui doit respecter une structure bien précise de dossiers et sous-dossiers…

vous devez par contre réfléchir à la problématique d'installation sur la machine du client :
soit vous fournissez un installateur qui copiera la librairie là où votre programme s'attend à la trouver (/usr/lib/… (… mauvaise idée en passant…) ou /usr/local/lib par exemple…)
soit si votre application est elle-même packagée comme un bundle .app vous décidez d'inclure la librairie dans le bundle de l'application (myapplication.app/Resource/lib par exemple…),
vous devez alors ajouter dans votre Makefile une étape de copie de la librairie à cet endroit…
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2009, 12h26   #3
Membre à l'essai
 
Inscription : mars 2007
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 32
Points : 21
Points : 21
Bonjour,

Merci pour la réponse déja, mais j'ai du mal la poser..

Je ne cherche pas à installer cette librarie elle est déjà correctement installé, elle est externe, enfin pas de problème de ce coté.

Mon problème c'est de la linker lors de la compilation de mon projet qui utilise cette librairy.

Le problème est donc de réussir à linker sur Unix les fichier venant de /usr/inlude et /usr/lib et d'un autre coté sur mac la meme librairie mais qui est installée sous forme de framework cette fois.

Le tout dans un fichier CMakeList

Merci d'avance
dzada est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2009, 12h52   #4
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 252
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 252
Points : 2 682
Points : 2 682
Citation:
Envoyé par dzada Voir le message
Bonjour,

Merci pour la réponse déja, mais j'ai du mal la poser..

Je ne cherche pas à installer cette librarie elle est déjà correctement installé, elle est externe, enfin pas de problème de ce coté.

Mon problème c'est de la linker lors de la compilation de mon projet qui utilise cette librairy.

Le problème est donc de réussir à linker sur Unix les fichier venant de /usr/inlude et /usr/lib et d'un autre coté sur mac la meme librairie mais qui est installée sous forme de framework cette fois.

Le tout dans un fichier CMakeList

Merci d'avance
lire la doc de gcc…
pour les frameworks :
-framework
-F
et pour l'OS/hardware cible
-arch
-isysroot
-mmacosx-version-min

sont des flags spécifiques à l'environnement Mac…
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2009, 13h01   #5
Membre à l'essai
 
Inscription : mars 2007
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 32
Points : 21
Points : 21
Re-bonjour

merci beaucoup.

Par contre, utiliser le framework avec gcc, meme si ca m'intéresse, ne me dit pas comment l'intégrer à CMakeList.

Mon problème est que je sais compiler indépendamment sur les deux plateforme, mais je veux configurer tout ca pour que le CMakeList puisse gérer cette liaison de lib tout seul et qu'il génère les makefile en fonction.

Merci encore
dzada est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2009, 12h10   #6
Membre à l'essai
 
Inscription : mars 2007
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 32
Points : 21
Points : 21
Par défaut Up

Bon, juste au cas où,

je n'ai toujours pas trouvé comment lier le framework sfml avec le cmakelist.txt

merci d'avance
dzada est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 10h52.


 
 
 
 
Partenaires

Hébergement Web