Changer de librairie suivant OSx

tabliertablier Membre
14:53 modifié dans Xcode et Developer Tools #1
J'utilise la libusb statique. Cette librairie comporte une version pour chaque version d'OSx (10.4, 10.5, 10.6).
Existe-t-il une solution simple pour que le Linker utilise la version spécifique de l'OSx de la machine de compilation?

Réponses

  • AliGatorAliGator Membre, Modérateur
    14:53 modifié #2
    Tu veux dire que tu compiles depuis un 10.4 ou un 10.5 ou un 10.6 et selon la machine qui compile tu veux choisir la bonne lib ?
    Ou tu veux compiler pour un 10.4 et un 10.5 et un 10.6 et selon la machine cible pour laquelle tu compiles tu veux choisir la bonne lib ?

    Tu peux jouer sur les réglages conditionnels dans tes réglages de projet : tu peux déjà  sélectionner le Build Setting qui t'intéresse ("linker flags" j'imagine de mémoire) et dans le petit bouton à  menu déroulant en bas à  gauche de la fenêtre des Build Settings (celle avec une icône d'engrenage) tu fais "Add Build Setting Condition".
    Maintenant je ne sais pas si les conditions proposées te suffiront.

    Sinon, en général quand on installe des librairies, il y a un lien symbolique qui est fait vers chaque version, te permettant soit de choisir la version "la plus récente, quelle qu'elle soit, installée sur l'ordi", soit "la version 1.x, que ce soit la 1.0 ou 1.1 ou 1.2 je m'en fiche mais pas la 2.x ou supérieure", ou "telle version spécifique", ... en fonction de tes besoins. En effet selon les évolutions de la librairie suivant ses versions, il peut y avoir eu un changement radical des APIs donc dans ce cas il te faut linker avec la version que tu supportes et pas la nouvelle que tu ne supportes pas, etc.

    Bon après c'est vrai que ça c'est plutôt utilisé pour les librairies dynamiques (libXX.so), qui ont pour vocation d'être installées dans le système, et partagées par diverses applis, d'où cette nécessité de liens symboliques pour pouvoir pointer sur des versions spécifiques ou génériques selon les applis qui les utilisent. Pour les libs statiques, comme par définition elles sont directement linkées avec le programme final lors de l'édition de lien, et donc ne servent qu'à  ton programme ensuite, il y a moins ces concepts là ...

    Si tu veux compiler ton appli pour plusieurs versions d'OSX (et donc de libusb), le plus simple est sans doute de faire 3 targets différents, un pour chaque version d'OSX, et donc de configurer chaque target pour qu'il utilise la bonne version de libusb.
  • tabliertablier Membre
    14:53 modifié #3
    Ok, 3 targets, je vais essayer.
      :(  Mais pas tout de suite car le câble du chargeur de batterie est en défaut. Manifestement en cour-circuit au ras du boà®tier d'alimentation. Il faut donc que j'économise la batterie pour lire mes eMails tant que je ne peux pas réparer (je suis en montagne).
  • tabliertablier Membre
    14:53 modifié #4
    Juste pour rigoler, voici à  quoi ressembles les morceaux après ouverture de l'alimentation. Le plus difficile a été de  séparer les deux demi-coques car elles sont collées. En bas se trouve le câble qui s'est mis en court-circuit. Je l'ai raccourci d'environ dix centimètres et l'ai re-soudé sur le circuit imprimé.
      :P  J'ai tout remonté et ça marche: environ une heure de travail!
Connectez-vous ou Inscrivez-vous pour répondre.