Compiler mon projet

mac_manumac_manu Membre
Hello,
J'ai juste une petite question de... débutant. Je viens de terminer ma première appli. Cocoa, et pour la tester, j'ai pris celle qui se trouve dans le dossier de mon projet, dans le dossier "Build" et je l'ai mise dans le dossier Applications. Double-clic dessus et, ça marche! :D Comme un copain voulait la tester chez lui, je lui ai transmis la même que celle que je venais d'utiliser. Alors là , le résultat est tout autre... ??? Lorsque qu'il double-clic sur l'icône, l'appli. fait mine de démarrer (icône sautillant dans le dock) puis... plus rien.
Alors, est-ce que j'ai oublié q.q.chose au moment de la compilation? J'attends avec impatience vos réponses, merci

Réponses

  • mpergandmpergand Membre
    04:06 modifié #2
  • mac_manumac_manu Membre
    04:06 modifié #3
    Comment ça, zéro link? Si c'est le message d'erreur qu'il pourrait afficher, non, il n'indique aucun message d'erreur.
  • mpergandmpergand Membre
    04:06 modifié #4
    Tu as cliqué sur ce lien  ;)

    Pour en être sûr, demande à  ton copain de lancer l'appli Console et de regarder les messages d'erreurs.
  • muqaddarmuqaddar Administrateur
    04:06 modifié #5
    Passe en mode Deployment à  la place de Developement dans xCode. Tout simplement. ;)
  • VeillardVeillard Membre
    04:06 modifié #6
    Oui, tu sélectionnes ton projet dans ta liste de fichiers tout en haut à  gauche (icône bleue). Tu demandes les infos (Pomme-I) puis dans le 3è onglet (Styles) tu sélectionnes "Deployment" au lieu de "Development"

    Voilà  !
  • mac_manumac_manu Membre
    04:06 modifié #7
    Merci à  Favouille, Oxitan et mpergand. Effectivement, en mode Deployment, ça fonctionne. Et effectivement, l'erreur venait de ZeroLink... Alors, il fallait simplement que je coche sa case pour le valider, ou est-ce plus complexe que cela?
  • ZyrolZyrol Membre
    décembre 2004 modifié #8
    Bonjour, je viens de me renseigner sur tous ce posts car j'ai le même problème.
    J'ai donc coché zéroLink dans la partie Deployment. Je compile. je file le fichier qui se trouve dans Build et qui porte le nom de mon appli à  un copain. et là  : rien, l'icone sautille dans le dock et disparait.

    il y a d'autre option ? ou bien ai-je loupé des étapes ?


    merci pour le coup de main
  • muqaddarmuqaddar Administrateur
    04:06 modifié #9
    En fait, normalement il n'y a pas à  se soucier de zerolink.
    Sa valeur change automatiquement quand on passe en mode deployment.
  • mpergandmpergand Membre
    04:06 modifié #10
    J'ai donc coché zéroLink dans la partie Deployment.


    C'est l'inverse ! Il faut que cette option soit décochée !
  • ZyrolZyrol Membre
    04:06 modifié #11
    Donc je récapitule :
    pomme-i, mode deployment dans l'onglet style (juste en le sélectionnant à  la place de development)
    Compiler
    passer le fichier qui se trouve dans Build et qui a le nom de l'appli à  mon autre ordi.

    Et là  : ça marche toujours pas !!!!

    j'ai oublié quelque chose ?
  • cbrandtcbrandt Membre
    04:06 modifié #12
    avant de recomplier: menu Build, Clean All Targets
  • ZyrolZyrol Membre
    04:06 modifié #13
    Et bien..... toujours pas !

    maintenant j'ai une erreur que je n'avais pas avant. tout se compilait parfaitement avant mais là ....
    voici l'erreur :
    DoubleEcran:0: Undefined symbols: _GetMoviePreferredRate _GetMovieTime _GetMovieTimeScale _PrerollMovie _SetMovieTimeValue _StopMovie

    et voici les avertissements (nouveau aussi):
    main.m:14: passing arg 2 of `NSApplicationMain' from incompatible pointer type

    DoubleEcran:0: warning prebinding disabled because of undefined symbols


    Que faire ???
  • VeillardVeillard Membre
    04:06 modifié #14
    Bonjour Zyrol,

    J'avais le même type de problème avec le "main.m"

    J'ai remplacé :
    #import &lt;Cocoa/Cocoa.h&gt;<br /><br />int main(int argc, char *argv[])<br />{<br />&nbsp; &nbsp; return NSApplicationMain(argc, argv);<br />}<br />
    


    par :

    #import &lt;Cocoa/Cocoa.h&gt;<br /><br />int main(int argc, const char *argv[])<br />{<br />&nbsp; &nbsp; return NSApplicationMain(argc, argv);<br />}<br />
    
  • ZyrolZyrol Membre
    décembre 2004 modifié #15
    Et bien ............. non ! toujours pas. Juste une erreur en moins grace à  la modification du main

    voici l'erreur :
    DoubleEcran:0: Undefined symbols: _GetMoviePreferredRate _GetMovieTime _GetMovieTimeScale _PrerollMovie _SetMovieTimeValue _StopMovie

    et voici l'avertissements :
    DoubleEcran:0: warning prebinding disabled because of undefined symbols

    ?????


  • cbrandtcbrandt Membre
    04:06 modifié #16
    t'as bien ajouté le framework QuickTime dans ton projet ?
  • ZyrolZyrol Membre
    04:06 modifié #17
    dans 1101977806:

    t'as bien ajouté le framework QuickTime dans ton projet ?


    J'imagine que par frameWork tu entends importer la bibliothèque quickTime ?
    Si c'est ça : oui. j'ai mis cette ligne dans le fichier contolleur.h et controlleur.m

    #include <QuickTime/QuickTime.h>


    Ce qui est marrant c'est qu'en mode development : pas de probleme à  la compilation. c'est uniquement quand je passe en deployment.
  • ChachaChacha Membre
    04:06 modifié #18
    C'est encore un epreuve qu'XCode est vraiment pénible. Effectivement, il ne signale pas assez d'erreur, et après rien ne marche et on ne sait pas pourquoi.
    En fait tu dois aussi rajouter "physiquement" le framework à  ton projet:
    Dans le groupe "Frameworks/Linked Frameworks", tu dois déjà  avoir Cocoa.framework. Il faut faire "Add", "Existing Framework" et aller chercher /Systeme/Library/Frameworks/QuickTime.framework
    De cette façon, les librairies Quicktime (contenant les fonctions) sont vraiment importées dans ton appli.
    J'ai eu le même problème avec OpenGL.
  • mpergandmpergand Membre
    décembre 2004 modifié #19
    J'imagine que par frameWork tu entends importer la bibliothèque quickTime ?


    Pour importer une framework: dans le panneau de droite "Group & Files", faire un clic-droit sur frameworks, dans le menu choisir add framework et ajouter quicktime.framework.

    [grilled]


    C'est encore une preuve qu'XCode est vraiment pénible. Effectivement, il ne signale pas assez d'erreur, et après rien ne marche et on ne sait pas pourquoi.


    oui, en fait je comprends pas, en mode developpement, comment ça peut marcher sans importer la framework ???
  • BruBru Membre
    04:06 modifié #20
    En mode Development, ZeroLink est activé.

    ZeroLink permet d'accélerer la compil (en fait d'accélerer le linkage) en utilisant des "caches" qui contiennent tous les links vers les /xxx/Frameworks.

    Ceci explique pourquoi, un build construit avec ZeroLink ne peut pas être lancer sur une autre machine, car les "caches" de chaque machine sont spécifiques.

    En mode Deployment, ZeroLink n'est pas activé.

    Donc, la phase de linkage est standard, et c'est donc de la responsabilité du développeur d'indiquer au linker le ou les libs à  inclure au projet.

    Note, un drag and drop d'un framework sur la fenêtre du projet permet aussi d'ajouter cette dernière au projet.

    .
  • ZyrolZyrol Membre
    04:06 modifié #21
    C'est bon !!!!


    Merci beaucoup
  • ZyrolZyrol Membre
    04:06 modifié #22
    Bon en fait ça marche toujours pas !!!!

    J'ai voulu le filer le fichier qui se trouve dans Build à  quelqu'un par mail (ce fichier fonctionne quand je clique dessus sur mon ordi). Et la personne en question le reçoit un dossier !!

    Le fichier en question se trouve à  cette adresse : vous pouvez jetez un coup d'oeil si vous voulez : http://loris.minvielle2.free.fr/appli/

    je commence à  déprimer ! je pensais avoir fait le plus dur !!

    Si quelqu'un pouvait me récapituler PAS A PAS la marche à  suivre pour donner l'appli ça serait parfait...
    Genre, à  partir du moment ou le codage est terminé....
  • BruBru Membre
    04:06 modifié #23
    C'est normal. Une appli OS X n'est en fait qu'un dossier (nommé bundle ou package) contenant le code et les ressources.

    En l'envoyant par email, l'encodage n'a pas dû conserver l'attribut de dossier disant que c'est un bundle.

    Il est préférable que tu zippes ton appli avant de l'envoyer.

    .
  • odjauodjau Membre
    04:06 modifié #24
    [grilled] :'( :'(

    dans 1101988223:

    J'ai voulu le filer le fichier qui se trouve dans Build à  quelqu'un par mail (ce fichier fonctionne quand je clique dessus sur mon ordi). Et la personne en question le reçoit un dossier !!


    c'est normal, une application est en fait un dossier (le finder ne montre qu'un "fichier" mais si tu fait un clique droit > ouvrir le package, tu obtiendras le contenus du "dossier).

    Pour faire des transfert part mail, le plus simple est de créer un .dmg avec l'utilitaire "utilitaire de disque". De cette manière, tu pourras transférer tes applis sans problème.

    @+
Connectez-vous ou Inscrivez-vous pour répondre.