Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: problème de référence vers librairie graphique à la compilation [Résolu]  (Lu 5372 fois)

0 Membres et 1 Invité sur ce sujet

Nelinroft

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Bonjour à tous, (linux 32bits)
J'ai essayé d'avoir un titre très clair sur mon problème mais j'ai conscience que ça ne suffit pas. Alors pour vous expliquer mon problème :
J'ai suivi ce tuto : http://doc.ubuntu-fr.org/sfml pour compiler les fichiers sources car je l'ai trouvé plus explicite que celui proposé dans les ressources sur le site officiel, surtout au moment d'installer les dépendances en fait. C'est ce qui me rebutait le plus à vrai dire. Mon problème survient à un endroit mais induit trois symptomes si je puis m'exprimer ainsi et si j'ai bien compris. Néanmoins je ne parviens quand même pas, après deux bonnes heures passée sur le net à trouvé une solution.

L'installation des dépendances semble s'être correctement effectué mais c'est au moment de compiler les sources que ça foire je crois :
- déjà, je n'ai pas le même écran que la capture du tutoriel après un petit coup de cmake.
- ensuite, il dit de taper deux commandes dans le répertoire où on a compiler les sources (make - sudo make install) et pour le make j'ai : " make: *** No targets specified and no makefile found.  Stop. "
- enfin j'ai ce message au moment de l'édition de liens :
(click to show/hide)

Si j'ai bien compris c'est au moment du cmake qu'il y a quelque chose qui ne se passe pas comme cela aurait dû ?

Merci d'avance pour votre aide,
Cordialement

« Modifié: Août 26, 2014, 11:18:15 am par Nelinroft »

TheKingArthur

  • Invité
Peut-être que tu devrais suivre le tuto du site. Il est moins explicite mais il marche surement mieux.

Nelinroft

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Eh bien après avoir passé l'après-midi et la soirée là-dessus. Après avoir tenté d'installer sfml sur un autre ordinateur (ubuntu 14 en 64bits qui me confronte à un problème totalement différent de celui que je recontre pour ce pc à ce propos), après avoir lu forums en français et forums en anglais, je n'ai toujours pas réussi à compiler quoi que ce soit.

Et je vais probablement te parraître un peu incisif TheKingArthur, parce que j'en ai un tout petit peu marre vois-tu, mais as tu seulement pris la peine de cliquer sur le lien du tutoriel dont je parle. Peut-être l'as tu simplement survolé d'accord mais ils décrivent en tous cas, tous deux exactement les mêmes étapes à la diffence que, dans le tutoriel officiel il y a une foutues listes de dépendances avec laquelle tu dois te démerder pour trouver le nom exacte des paquets et que ça te prends une heure pour chacun. Alors que dans l'autre t'as la jolie commande toute prête (, très pratique quand tu touches un peu mais pas trop non plus en matière d'informatique). Mais bref ! Là n'est pas la question et m'énerver je sais, ne résoudra en rien mon problème, désolé.

Aussi, j'ai remarqué quelque chose qui me chiffone et ceci quelque soit le tutoriel. Il est indiqué de découpresser les sources dans un répertoire puis de les "compiler" avec Cmake en indiquant le répertoire où seront les fichiers binaires (si j'ai faux dites moi). Le truc c'est que Cmake à besoin de " CMakeLists.txt ", non ? Mais lorsqu'on extrait du .zip, ce fichier n'apparaît pas. Pourquoi ? En fait, il est apparu sur une de mes deux installations donc à la fin, je dois avouer que je ne bite plus rien...

Quelqu'un ? Une idée ?
Merci d'avance.

PS : Je vous en suplie, aidez moi à pouvoir utiliser sfml sous linux. J'suis à deux doigts de craquer et d'aller coder en java sous windows :(
« Modifié: Août 24, 2014, 11:04:59 pm par Nelinroft »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Le fichier CMakeLists.txt est présent dans l'archive qui contient les sources. C'est sûr que tu si télécharges une release précompilée, qui ne contient pas le code source de SFML, tu ne vas pas pouvoir compiler grand chose ;)

Note que le tutoriel n'indique pas le nom précis des paquets des dépendances, car ceux-ci diffèrent d'une distribution à l'autre. ubuntu-fr.org, par contre, n'a de manière évidente pas ce problème.

Sinon sans s'embêter ça peut être très simple sous Linux :

tar ... // décompresse l'archive
cmake .
make
sudo make install

C'est tout.
« Modifié: Août 25, 2014, 07:40:46 am par Laurent »
Laurent Gomila - SFML developer

Nelinroft

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Merci de ton aide mais je dois vraiment être une kiche avec une faute d'orthographe ! C'est pire car je suis encore plus perdu qu'avant. J'ai pourtant télécharger ce que crois être les sources dont tu parles, testé ton (tar ... ; cmake . make ; sudo make install) mais déjà le tar plante car les sources sont en zip. Donc j'ai décompressé manuelement. Le "cmake ." a fonctionné dans le dossier fraichement décompréssé mais le "make" me dit que qu'il n'y a pas de cible spécifié et qu'il ne trouve pas non plus de makefile alors que j'ai pas bougé d'un répertoire.

Et honnêtement c'est la troisième fois que je tente d'installer sfml sur un pc et c'est toujours une galère sans nom. Je n'ai jamais réussi. Même là, avec tes quatre petites commandes, ça ne fonctionne pas. Et c'est franchement gonflant de ne parvenir à rien après plusieurs heures de tentatives véritablement.

Et entre nous, comment suis-je sensé deviner que je téléchage une release précompilée quand je clique sur "Télécharger SFML 2.1". Ce n'est écrit nulle part.

Et des trois méthodes c'est sans doute la plus difficile à mettre en place. D'accord, je pourrais me porter vers les autre mais entre un dépot qu'est pas à jour (ma première tentative y'a 6 mois et tellement ça m'a gonflé j'ai abandonné); la solution un peu dégueulasse qui consiste à copier les fichiers mais qui va forcément planté parce qu'il arrivera bien un moment où on va appelé une ressource introuvable. Bah je préfère en chier maintenant et
Citer
L'option 3 nécessite plus de travail : vous devez installer les fichiers de développement de toutes les dépendances de SFML, installer CMake, et exécuter quelques commandes à la main. Mais le résultat sera un package parfait, qui prend en compte toutes les spécificités de votre système.
et avoir un résultat nickel. En choisissant l'option 3 je me doutais que ça ne serait pas simple mais là quand même. Je m'acharne et ça ne donne rien. Vous comprendez, j'espère ma frustration.

Donc voila, ça fait beaucoup de "Et" mais voici à quoi j'en suis réduis. Passer des heures sur des forums pour enfin lacher une un poste plein de désespoire. Bref, merci quand même. Je crois que je vais tout bonnement et tout simplement retourner sur mes jeux.
Et puis écrire une complainte.
Merci encore.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Citer
mais déjà le tar plante car les sources sont en zip
Oups désolé. Sinon, juste pour être clair, tu avais compris que les "..." étaient à remplacer par les vraies options, puisque je ne connais pas par coeur ces dernières ? Enfin bref, peu importe puisque ce n'était pas la bonne commande, et que tu as tout de même réussi à décompresser l'archive. On ne va pas s'attarder là-dessus.

Citer
Le "cmake ." a fonctionné dans le dossier fraichement décompréssé mais le "make" me dit que qu'il n'y a pas de cible spécifié et qu'il ne trouve pas non plus de makefile alors que j'ai pas bougé d'un répertoire.
Ce qui serait bien, ce serait de nous copier la totalité de ce qui se passe dans ta console (les commandes que tu tapes, ainsi que les messages qui te sont donnés). Ajoute un "ls" après avoir exécuté cmake, ça permettra de voir ce qui se trouve dans ton répertoire courant.

Citer
Et honnêtement c'est la troisième fois que je tente d'installer sfml sur un pc et c'est toujours une galère sans nom.
Je sais. Mais il faut bien que tu te rendes comptes que compiler une bibliothèque, c'est rarement facile, voire même souvent plus compliqué que ça. Au lieu de pester contre ladite bibliothèque, et tant qu'à en chier, il vaudrait donc mieux passer un peu de temps à assimiler les concepts mis en jeu, pour que la prochaine fois que tu doives compiler une bibliothèque avec CMake, tu y arrives directement plutôt que de galérer à nouveau pendant des heures. En programmation, tant que tu ne comprends pas ce que tu fais, tu ne peux pas avancer correctement.

Citer
Et entre nous, comment suis-je sensé deviner que je téléchage une release précompilée quand je clique sur "Télécharger SFML 2.1". Ce n'est écrit nulle part.
C'est quand même pas dur de voir qu'il n'y pas le code source dedans, ou bien de voir qu'il y a un téléchargement qui s'appelle "Code source" sur la page des téléchargements ;)

Citer
D'accord, je pourrais me porter vers les autre mais entre un dépot qu'est pas à jour (ma première tentative y'a 6 mois et tellement ça m'a gonflé j'ai abandonné)
Ca me gonfle aussi. Il y a plusieurs personnes qui ont fait des paquets Debian pour SFML 2, et je ne comprends pas pourquoi aucun n'est toujours disponible officiellement. Là il faut sûrement gueuler sur les mainteneurs du paquet.

Citer
la solution un peu dégueulasse qui consiste à copier les fichiers mais qui va forcément planté parce qu'il arrivera bien un moment où on va appelé une ressource introuvable
Non. Suffit de copier les fichiers .so dans usr/local/lib (ou autre destination de ton choix) et les en-têtes dans /usr/include/SFML. C'est pas crade et c'est très simple (c'est exactement ce qui se passe quand tu fais "make install"...).

Citer
En choisissant l'option 3 je me doutais que ça ne serait pas simple mais là quand même. Je m'acharne et ça ne donne rien. Vous comprendez, j'espère ma frustration.
Oui je comprends tout à fait. Mais comme je te l'ai déjà dit, tant que tu joueras avec des outils que tu ne comprends pas, ça va être compliqué.
Laurent Gomila - SFML developer

Nelinroft

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Bon, bon, bon. Me revoila.

Un grand merci pour tes réponses pleinnes de compréhension Laurent. Tu n'es pas administrateur pour rien.

Oui, j'avais compris pour les " ... ", ce n'est rien.
Je te fais part de l'affichage de ma console. Donc, je me place dans le dossier décompréssé où se trouvent les sources et je lance un " cmake . ". Le point pour indiquer le répertoire courant, c'est ça ?
(click to show/hide)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Citer
Le point pour indiquer le répertoire courant, c'est ça ?
Oui c'est ça.

Citer
-- UDev not found.
Tu ne vois pas même un petit peu de quoi il s'agit ? :P

Tu n'as pas installé la bibliothèque udev (cette dépendance a été ajoutée après SFML 2.1, donc elle n'est pas encore dans les tutoriels). Sous Ubuntu il te faut sûrement  un "sudo apt-get install libudev" (sinon, fais un "apt-cache search udev").

Sinon, tu peux aussi compiler les sources de SFML 2.1, ça collera mieux aux tutoriels que tu peux trouver. Quoique, à part ça je ne pense pas qu'il y ait beaucoup d'autres points qui vont te gêner.
Laurent Gomila - SFML developer

Nelinroft

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Je me suis douté qu'il manquait des paquets en voyant ça mais je ne préfèrai rien faire avant qu'on ne me le confirme.

Et là ! Typiquement deux trucs : le tutoriel n'est pas mis à jour mais bon admettons. Mais surtout je ne trouve pas le paquet udev. Je précise, comme j'ai pu le dire, j'ai essayé sous ubuntu mais je suis sous linux mint 17 32bits.
La commande "sudo apt-get install libudev" ne fonctionne pas.
J'ai essayé de passer par le software manager mais là j'ai une liste de choses comportant le mot clé "udev" mais difficile de déterminer le bon paquet. Du coup petit coup de google mais le premier lien est un type qui veut installer une imprimante.
J'ai avant ça essayé "apt-cache search udev" mais j'ai là-aussi une longue liste de paquets avec udev dans le nom (, et cette liste semble assez différente de celle du software manager), donc ayant peur de me planter. J'aimerais que tu m'indiques quel paquet installer.
(click to show/hide)

Je serais bien tenté d'installer l'un de ceux-ci mais j'ai peur de me planter.

libgudev-1.0-0 - GObject-based wrapper library for libudev
libgudev-1.0-dev - libgudev-1.0 development files

libudev-dev - libudev development files
libudev1 - libudev shared library

Un grand merci pour ton aide et ta patience.

PS: le mot "paquet" est bien adapté rassure moi ? S'il ne correspont pas ou n'est pas assez précis, dis moi s'il te plait.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Citer
le tutoriel n'est pas mis à jour mais bon admettons
Comme je l'ai dit, udev n'est nécessaire que pour SFML > 2.1. Or SFML 2.2 n'est pas encore sorti, donc il n'y a aucun tutoriel pour SFML 2.2, donc il n'y a rien qui ne soit pas à jour. Il faut bien comprendre que si tu compiles les dernières sources d'une bibliothèque, il ne faut pas s'étonner de ne pas trouver de tutoriels à jour. C'est une version en cours de développement.

Le bon paquet est "libudev-dev". Il faudra aussi "libudev1", mais le premier doit normalement l'installer car il en dépend.

Citer
le mot "paquet" est bien adapté rassure moi ?
Oui ;)
Laurent Gomila - SFML developer

Nelinroft

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Merci, l'installation semble s'être correctement passée. Je n'ai pas vu d'erreur. Néanmoins lors de la compilation de l'exemple j'ai un soucis. Je me suis placé dans le répertoire où se trouve le fichier main de l'exemple du tutoriel.
(click to show/hide)
J'ai dû mal m'y prendre j'imagine.
C'est à dire que du coup, sfml est installé dans le chemin standard, donc est-il besoin de rajouter des options (-I ; -L) ? Ou manque t-il une étape ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Ca dépend où tu as installé SFML, et si ce chemin fait parti des chemins connus par ld (le chargeur de bibliothèques). Par exemple, il n'est pas rare que usr/local/lib soit standard pour l'éditeur de liens, mais pas pour ld. Si tu veux ajouter un chemin à ld je te laisse Googler, je ne me rappelle jamais la manip.
Laurent Gomila - SFML developer

Nelinroft

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Bon bon bon...
Je viens de passer une bonne heure à lire des choses sur la commande ld et la modification de chemin mais j'ai pas vraiment trouvé ce que je dois faire et comment je dois le faire. J'ai trouvé la réponse, enfin ça y ressemble, dans le tutoriel sfml justement.
Citer
export LD_LIBRARY_PATH=<installation-de-sfml>/lib && ./sfml-app
mais là encore j'ai peur de me planter alors je préfère demander avant de faire quoi que ce soit.
Aussi, le chemin est l'endroit où j'ai collé les sources ? Ou l'endroit dans lequel les commandes (cmake . ; make ; sudo make install ) ont mis des choses ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Vu que dans la commande il y a "./sfml-app", tu dois de toute évidence être dans le répertoire où se trouve ton exécutable, sfml-app. Et le répertoire que tu mets dans LD_LIBRARY_PATH, et bien c'est celui qui contient les fichiers .so de SFML.

Mais attention, ça c'est la méthode pour modifier temporarirement les chemins de ld. Il faudra le faire à chaque fois. Pour le faire de manière permanente, il faudra comme je te l'ai dit Googler un peu (ajoute "ldconfig" à tes mots-clé).
Laurent Gomila - SFML developer

Nelinroft

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
J'ai trouvé ça
Citer
# /sbin/ldconfig -n /lib
exécuté  en  tant  que superutilisateur après l’installation d’une nouvelle bibliothèque dynamique va mettre à  jour  les  liens  symboliques dans /lib.
ici : http://manpages.ubuntu.com/manpages/gutsy/fr/man8/ldconfig.8.html et là http://pwet.fr/man/linux/administration_systeme/ldconfig (c'est la même chose.)
J'suis bon ou il faut que j'y retourne ?