indiquer les dépendances

Le problème exposé dans ce sujet a été résolu.

Salut à tous ! Je travail sur un projet de ray-casting suite à cet article

Le projet est bien avancé et je voulais le distribuer.

(je suis sous mac) je voulais donc donner l'app "ray-casting.app" pour le tester sur le mac de mon père qui est plus puissant. Mais il ne fonctionnait pas (la fenêtre s'ouvre mais reste blanche)

Naturellement je me suis dit que c'était un problème de dépendance, il ne sait pas où sont les fichiers de la SFML.

Mais… j'ai testé le .app sur mon propre mac et surprise, il ne fonctionnait non plus pas. (j'arrive a "jouer" a mon projet uniquement lorsque le projet est lancé par Xcode (c'est un IDE) Je n'arrive pas à obtenir de code d'erreur qui pourrait confirmer l'origine du problème.

Je pensais donc essayer de montrer au .app ou est la SFML pour vérifier que c'est bien ca le problème. quelqu'un sait comment faire ca ?

+0 -0

Hello, En effet, le souci viens probablement des fichiers que tu distribues. Il faut savoir que quand tu lances depuis Xcode, le logiciel définis tout un tas de variables d'environnement et link automatiquement plusieurs lib, ce qui n'est pas fait quand on lance depuis le finder. Tu peux accéder à un log en lançant l'application Console (dans le dossier Autres des applications). Pourrais tu détailler la façon dont tu as créé ton projet ? Vu que tu bosses avec un .app je devine que tu as créé une application et pas un command-line tool. Il faudrait que tu ailles dans les build rules de ta target et que tu regardes si le pattern de projet que tu as utilisé link des libs dynamiques/statiques de la sfml, qu'il faudra probablement distribuer dans le package de ton .app . Après je n'utilise quasiment jamais les packages .app donc à moins que tu nous fournisse une liste d'erreurs, je vais avoir du mal à plus t'aider. Regarde sur le forum de la SFML, essaye de contacter Hiura, il gère le dev mac et pourra surement t'aider. N'hésite pas à jeter un oeil à la doc de Xcode et au chapitre déploiement aussi ;)

j'ai tenter de le lancé en faisant ./ray-castin.app mais il me dit que c'est un répertoire, en effet je peux faire cd dedans J'ai trouver la commande open, mais aucune option ne permet de donner des arguments.

Pour ce qui est du projet, j'ai installé tous les éléments comme dans ce tuto Ensuite lors du choix du projet j'ai simplement prit SFML APP

Je ne suis pas très à l'aise avec les options du projets, mais si tu veux je peux mettre des screenshot

J'ai tenter d'utiliser la console et j'ai ces messages qui reviennent:

23.04.16 17:04:20.900 launchservicesd[87]: SecTaskLoadEntitlements failed error=22

23.04.16 17:04:20.902 launchservicesd[87]: SecTaskLoadEntitlements failed error=22

23.04.16 17:04:21.043 appleeventsd[59]: SecTaskLoadEntitlements failed error=22

23.04.16 17:04:22.234 launchservicesd[87]: SecTaskLoadEntitlements failed error=22

23.04.16 17:04:22.339 launchservicesd[87]: SecTaskLoadEntitlements failed error=22

http://imgur.com/KhUf2lQ C'est ici que je dois ajouter les arguments ?

Edit: J'ai fouiller dans les options et j'ai trouver ça: options Xcode C'est bien ici que je dois modifier ? si oui je dois ajouter dans framework ou binaries ? je dois ajouter quelles fichiers de la sfml (les .hpp ou les .dylibs ou les deux)? la SFML à des dépendances, je dois aussi les lettres ?

+0 -0

Bonsoir, Je viens de lancer un nouveau projet Xcode SFML App, depuis le pattern fourni, je n'ai eu aucun souci à lancer l'app depuis le Finder (je run OSX 10.10 et pas 10.11). Je te propose donc quelques pistes qui pourrait t'aider : Essaye de changer la deployment target à 10.10 et de le lancer sur ton ordi ou si possible sur un ordi qui tourne encore sur la 10.10. Essaye de créer un nouveau projet avec le pattern SFML App et de le lancer depuis le finder tel quel, sans rien changer. Si ça ne marche pas, il faudra probablement songer à réinstaller la SFML, car le souci vient de là et pas de ton projet. Si ça marche, a contrario, le souci vient de ton projet, je te conseille donc d'une part d'essayer d'en créer un nouveau pour revenir au paramétrage de base puis de recopier le code dedans (il arrive que ça marche ^^), et d'autre part de contacter Hiura sur le forum de la SFML, qui aura bien plus les compétences techniques propres à t'aider que moi !

J'ai tenté de googler ton erreur et manifestement, ça à l'air exclusif à El Capitan, mais je n'y ai pas passé plus de 5min donc je te laisse regarder ça plus profondément. Dans tous les cas, après test et relecture de la doc SFML, tu ne devrais pas avoir à linker toi même dans le bundle … A moins que tu utilises d'autres librairies que la SFML qui nécessitent des dépendances ?

Non non, uniquement la SFML.
Je vais faire un nouveau projet et voir si le problème vient du projet ou de l'installation.

Merci our ton aide, je te tiens au courant.

EDIT:

je viens de faire un nouveau projet et j'arrive à le lancer depuis le finder sans problème.
Le problème vient donc de mon projet.
Je vais faire un nouveau projet et importer tous les fichiers.

EDIT 2:
J'ai fais un nouveau projet et j'ai ajouter les fichiers du projets. Il build et se lance correctement mais lorsque je lance avec le finder: renouveau fenêtre blanche.

EDIT 3:
Est-cepossible que ca vienne du code ? Si jamais voici mon github :

+0 -0

j'ai été dans /Users/d3m0t3p/Library/Developer/Xcode/DerivedData/Ray-Casting/Products/Debug/ray-casting.app

Je viens de testé avec product > archive. J'ai le même résultat. Existe-t-il une différence entre les deux ?
Je suis entrain de faire un SSCCE je vais voir si le problème vient du code, et si oui, de quelle partie.
Mais fait intéressant, j'ai ajouter une fonctionnalité (les murs rouges deviennent de plus en plus foncé selon la distance) et désormais la fenêtre n'est plus blanche mais rouge !

Qu'est-ce que ca signifie ?
Voici la discussion sur le forum de la SFML

+0 -0

Je viens de testé avec product > archive. J'ai le même résultat. Existe-t-il une différence entre les deux ?

Oui, généralement quand tu as finis ton application (iOS/OS X), tu utilises cette fenêtre pour exporter ton app vers les stores ou vers ton ordi. Quand tu fais un bête copié-collé de l'application, ta version est en débug, donc un peu plus lourde que les autres car elle contient les informations de débogage. Xcode se sert de cette app.

J'ai regardé tes sources sur Github, comme le problème vient de Xcode et des libs qui sont gérés (il me semble), puis stocké sur un .xcodeproj. Il y a de forte chance que le problème vienne de là.

Est-ce que tu as testé le code sur un autre OS comme Linux ?

Je viens de le testé sur window avec visual studio. J'ai le même comportement qu'avec mon mac. Mais même lancé depuis visual studio, il restait blanc, mais il m'a donné une information que Xcode n'a pas fait: j'avais une exception std::vector out_of_range. En utilisant le debugger de Xcode je trouve ca: pour l'app lancée depuis Xcode
debugger de l'app lancée depuis Xcode

et ca quand je lance l'apps depuis le finder et que depuis Xcode je fais un debug>attach to process
debug de l'app qui marche pas
Bref pour résumé: le labyrinth est pas chargé (d'où l'exception aperçue sous window)
Je dois mettre où mon labyrinth ? (un fichier txt au format 1= mur et 0 =air)
J'ai changé le code et mis un chemin absolu et tout fonctionne bien, mais j'aimerai un chemin relatif pour pouvoir modifier facilement la map. Donc je dois mettre un chemin relatif à quoi ?

+0 -0

Il faut que tu glisses ton chemin vers l'arborescente à gauche dans Xcode, ensuite une fenêtre apparait, puis tu cliques sur ok. N'oubliez pas de cocher Copy Items If Need.

Xcode pendant la compilation met le fichier dans l'app. Tu as juste à précisé le nom du fichier.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte