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 (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. (http://myscreen.png) (http://hiscreen.png)
- 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 :
g++ main.o -o sfml-app -L /home/mintymind-pc/SFML-2.1/lib -lsfml-graphics -lsfml-window -lsfml-system
/usr/bin/ld: warning: libGLEW.so.1.7, needed by /home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so, not found (try using -rpath or -rpath-link)
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewUniform1fARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__GLEW_ARB_shader_objects'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewGetObjectParameterivARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__GLEW_ARB_vertex_shader'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewFramebufferTexture2DEXT'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewUniformMatrix4fvARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewGenFramebuffersEXT'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewUniform3fARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewRenderbufferStorageEXT'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__GLEW_ARB_fragment_shader'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewActiveTextureARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewShaderSourceARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `glewInit'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewBindFramebufferEXT'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewFramebufferRenderbufferEXT'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewLinkProgramARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewUseProgramObjectARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewBlendFuncSeparateEXT'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewGenRenderbuffersEXT'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewUniform2fARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewUniform4fARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewCreateProgramObjectARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `glewGetErrorString'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewCompileShaderARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewDeleteRenderbuffersEXT'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewDeleteObjectARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewGetUniformLocationARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewGetInfoLogARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__GLEW_EXT_blend_func_separate'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewDeleteFramebuffersEXT'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewCheckFramebufferStatusEXT'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewUniform1iARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__GLEW_ARB_texture_non_power_of_two'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__GLEW_ARB_shading_language_100'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewCreateShaderObjectARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewBindRenderbufferEXT'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__GLEW_EXT_framebuffer_object'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewAttachObjectARB'
/home/mintymind-pc/SFML-2.1/lib/libsfml-graphics.so: undefined reference to `__glewGetHandleARB'
collect2: error: ld returned 1 exit status
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
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.
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 ?
mintymind-pc@mintymind-Aspir ~ $ cd SFML-master/
mintymind-pc@mintymind-Aspir ~/SFML-master $ ls
cmake CMakeFiles doc extlibs license.txt src
CMakeCache.txt CMakeLists.txt examples include readme.txt tools
mintymind-pc@mintymind-Aspir ~/SFML-master $ cmake .
-- UDev not found.
-- UDev: You can specify includes: -DUDEV_PATH_INCLUDES=/opt/udev/include
-- currently found includes: UDEV_INCLUDE_DIR-NOTFOUND
-- UDev: You can specify libs: -DUDEV_PATH_LIB=/opt/udev/lib
-- currently found libs: UDEV_LIBRARIES-NOTFOUND
CMake Error at cmake/Modules/FindUDev.cmake:49 (MESSAGE):
Could not find UDev library
Call Stack (most recent call first):
src/SFML/Window/CMakeLists.txt:203 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/mintymind-pc/SFML-master/CMakeFiles/CMakeOutput.log".
mintymind-pc@mintymind-Aspir ~/SFML-master $
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.
biosdevname - apply BIOS-given names to network devices
gir1.2-gudev-1.0 - libgudev-1.0 introspection data
gobi-loader - Firmware loader for Qualcom GobiUSB chipsets
libconvert-uulib-perl - Perl interface to the uulib library (a.k.a. uudeview/uuenview)
libgpod-common - common files for libgpod
libgudev-1.0-0 - GObject-based wrapper library for libudev
libgudev-1.0-dev - libgudev-1.0 development files
libmtp-common - Media Transfer Protocol (MTP) common files
libmtp-runtime - Media Transfer Protocol (MTP) runtime tools
libudev-dev - libudev development files
libudev1 - libudev shared library
makedev - creates device files in /dev
media-player-info - Media player identification files
mksh - MirBSD Korn Shell
pcmciautils - PCMCIA utilities for Linux 2.6
pulseaudio - PulseAudio sound server
python-pyudev - Python bindings for libudev
python3-checkbox-support - collection of Python modules used by PlainBox providers
python3-pyudev - Python3 bindings for libudev
system-config-printer-udev - Printer auto-configuration facility based on udev
udev - /dev/ and hotplug management daemon
usbmuxd - USB multiplexor daemon for iPhone and iPod Touch devices
isight-firmware-tools - tools for dealing with Apple iSight firmware
kinect-audio-setup - helpers to setup audio input from the Microsoft Kinect sensor
barry-util - Command line utilities for working with the RIM BlackBerry Handheld
bilibop-rules - device management rules for OS running from external media
bilibop-udev - minimal udev rule for Debian GNU/Linux running from external media
bootcd - run your system from cd without need for disks
chiark-utils-bin - chiark system administration utilities
dahdi-linux - DAHDI telephony interface - Linux userspace parts
dracut - A new initramfs infrastructure
dracut-network - A new initramfs infrastucture
hama-slide-mouse-control - Control the DPI setting and thumb buttons of a Hama SLide S1 gaming mouse
libeeze-dev - Development files for libeeze
libeeze1 - Library for manipulating devices through udev with a simple and fast API
libgudev1.0-cil - GObject-based wrapper library for libudev -- CLI bindings
libgudev1.0-cil-dev - GObject-based wrapper library for libudev -- CLI development files
libgudev3.0-cil - GObject-based wrapper library for libudev -- CLI bindings
libgudev3.0-cil-dev - GObject-based wrapper library for libudev -- CLI development files
ludevit - converter from standard Slovak into the L. Štúr version
monodoc-gudev-manual - compiled XML documentation for gudev-sharp
python-gudev - Python bindings for gudev
simpleburn - Minimalistic application for burning and extracting CDs and DVDs
spacefm - Multi-panel tabbed file manager - GTK2 version
spacefm-common - Multi-panel tabbed file manager - common files
spacefm-gtk3 - Multi-panel tabbed file manager - GTK3 version
triggerhappy - global hotkey daemon for Linux
udev-discover - Sysfs browsing tool focused on helping udev users and developers
udevil - Alternative storage media interface
usbmount - automatically mount and unmount USB mass storage devices
uudeview - Smart multi-file multi-part decoder (command line)
xinput-calibrator - Generic touchscreen calibration program for X.Org
cmem-mod-dkms - cmem-mod driver in DKMS format.
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.
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.
mintymind-pc@mintymind-Aspir ~/sfml-dev $ g++ -c main.cpp
mintymind-pc@mintymind-Aspir ~/sfml-dev $ g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system
mintymind-pc@mintymind-Aspir ~/sfml-dev $ ./sfml-app
./sfml-app: error while loading shared libraries: libsfml-graphics.so.2: cannot open shared object file: No such file or directory
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 ?