Targets, Link binary, etc.

HerveHerve Membre
11:04 modifié dans API AppKit #1
Bonjour,

Je tente toujours sans succès de relier mes classes Cocoa à  mes classes audioUnit. Les unes et les autres semblent fonctionner, mais la coordination ne se fait pas. Via la mail list de Core Audio, j'ai appris qu'il fallait une "Target" différente pour Audio unit et CocoaUI. J'ai plein de questions :

- que sont donc exactement ces "target", quel est leur rôle? J'ai du mal à  trouver de la doc à  ce sujet.

- le "target Cocoa UI" est copié dans le "target dependencies" de l'Audio Unit. Pouvez-vous m'éclairer sur ce processus?

- j'utilise dans le "build phase" de chaque target le lien "link binary" pour associer à  chaque partie du programme les frameworks nécessaires, et beaucoup sont les mêmes. Problème, du coup, XCode charge deux fois le même framework. Sinon on peut utiliser "Add files to..." mais dans ce cas j'ai du mal à  retrouver les framework sur le disque dur. Que suggérez-vous?

- pour tester le .component, j'aurai besoin de la console depuis AudioLab. Pas moyen de lancer le plug depuis XCode. Savez-vous comment avoir la console et le debugging dans ce cadre?

Bon, on va s'arrêter là .... Merci d'avance!!  :)

Réponses

  • HerveHerve Membre
    11:04 modifié #2
    Le problème de l'utilisation multiple des frameworks est facile apparemment à  résoudre : on peut simplement faire un glisser/déposer de la colonne gauche au dossier de la target. Pour le reste, pas de progrès. Ces "target", en particulier, qu'est-ce que c'est??? Est-ce une sorte "d'hyper classe"?  Je ne vois pas comment.  :(
  • laudemalaudema Membre
    juin 2011 modifié #3
    Que nenni, une Target est un concept Xcode et non  Objective-C, rien à  voir avec une Class.
    Apple, dans sa doc sur les concepts de Xcode dit que
    une "Target" spécifie un produit à  construire et contient les instructions pour construire le projet depuis un ensemble de fichiers dans un projet ou un espace de travail. Une "Target" définit un seul produit, elle organise les entrées dans le système de construction -- les fichiers source et les instructions pour traiter ces fichiers--requis pour construire ce produit. Les projets peuvent contenir une ou plusieurs "Target", dont chacune produit un produit.

    Beaucoup de choses semblent être expliquées ici pour Xcode 3 dont l'environnement est différent (mais les concepts restent ceux de Cocoa bien sûr).
  • HerveHerve Membre
    11:04 modifié #4
    Merci laudema pour le lien. Je n'avais pas vu le premier qui est ce que je cherchais, même si c'est succinct.

    En fait,si je comprends bien la doc,  une seule target doit être active à  la fois. Aussi le menu "target dependencie" dans le "build phase" permet-il visiblement de hiérarchiser les "targets"?? Et puis surtout, si on deux deux targets, comment les classes audio et graphiques communiquent-elles vraiment? On les appelle dans les header, certes, mais bon.

    J'ai des problèmes de compilation depuis que je manipule ces targets. J'ai ça :
    (...)<br />setenv MACOSX_DEPLOYMENT_TARGET 10.6<br />(...)<br />clang: error: linker command failed with exit code 1 (use -v to see invocation)<br />Command /Developer/usr/bin/clang++ failed with exit code 1
    


    J'y suis pas encore!! Mes classes audio marchent maintenant, je sais faire beaucoup de circuits audio classiques, les classes graphiques fonctionnent. C'est la communication entre elles que je n'arrive pas à  finaliser.
  • zoczoc Membre
    11:04 modifié #5
    dans 1309404823:

    Que nenni, une Target est un concept Xcode.

    Pas vraiment. C'est un concept générique qui définit un produit de compilation. Il est utilisé pour des outils bien plus vieux que Xcode, comme (GNU) make, cmake et bien d'autres.
  • HerveHerve Membre
    11:04 modifié #6
    Mmmh!...

    Concernant la console, Terminal n'aide pas (visiblement) et je ne vois rien dans AULab. Du coup, pas moyen de mettre des NSLog ou des printf pour voir où cela ne marche pas. Vous n'auriez pas une idée??

    Au fait, suis-je le seul dans ce forum à  travailler avec Core Audio?
  • laudemalaudema Membre
    11:04 modifié #7
    A première vue non, peu de monde se lance là  dedans et je serais probablement le dernier à  le faire.. Mais si tu es abonné à  la mail-list Core Audio tu pourrais peut être poser la question là  bas où tu as plus de chance de trouver une concentration de gens concernés par ces problèmes ?
    Pour la console je n'ai pas été plus loin que lancer AULab pour voir s'il y'en avait une mais il n'y en a pas, je n'ai pas eu le courage de lancer auval pour regarder ce que c'était, désolé.
    Si tes NSLog ne passent pas tu peux utiliser printf qui souvent est redirigé vers la console qui se trouve dans le sous-dossier Utilitaires du dossier /Applications
    hth
  • HerveHerve Membre
    11:04 modifié #8
    Je l'ai fait, et c'est là  que j'ai compris l'histoire de ces target. Les questions que je posais au début de cette discussion me semblaient être plus générales en fait.

    Merci.
  • HerveHerve Membre
    11:04 modifié #9
    dans 1309459731:

    Si tes NSLog ne passent pas tu peux utiliser printf qui souvent est redirigé vers la console qui se trouve dans le sous-dossier Utilitaires du dossier /Applications
    hth


    Merci, je pensais à  un truc comme ça, mais je pensais que c'était Terminal, je n'avais pas vu Console.  :)
Connectez-vous ou Inscrivez-vous pour répondre.